Primeiros Passos¶
Clonar o Repositório¶
git clone https://github.com/mayocream/koharu.git
cd koharu
Pré-requisitos¶
Windows¶
- Visual Studio C++ build tools
- CUDA Toolkit 13.0 para builds CUDA
- AMD HIP SDK para ZLUDA
macOS¶
- Xcode Command Line Tools (
xcode-select --install)
Linux¶
- Toolchain C/C++ da distro (
build-essentialou equivalente) - LLVM 15 ou mais recente para builds com aceleração GPU
Instalar Dependências¶
bun install
A toolchain Rust é resolvida automaticamente a partir do rust-toolchain.toml no primeiro build.
Executar Localmente¶
bun run dev
Isso inicia o app Tauri em modo dev contra a UI empacotada.
Build de Release¶
bun run build
Os binários ficam em target/release-with-debug/ ou target/release/ dependendo do profile.
Comandos do Dia a Dia¶
Sempre use bun cargo para comandos Rust — é assim que as feature flags de plataforma (CUDA, Metal, Vulkan) são aplicadas corretamente.
bun cargo check # verificação de tipos
bun cargo clippy -- -D warnings # lint
bun cargo fmt -- --check # checagem de formatação
bun cargo test --workspace --tests # testes unitários e de integração
Formatação de UI e configs usa oxfmt:
bun run format
bun run format:check
Testes unitários da UI:
bun run test:ui
Trabalho com ML¶
Ao iterar em koharu-ml ou koharu-llm, habilite o backend que bate com a sua máquina:
# Windows / Linux com NVIDIA
bun cargo test -p koharu-ml --features=cuda
# macOS (Apple Silicon)
bun cargo test -p koharu-ml --features=metal
Detalhes da seleção de backend estão em Aceleração e Runtime.
Documentação¶
A documentação mora em docs/en-US/, docs/ja-JP/, docs/zh-CN/ e docs/pt-BR/. Construa cada locale que você editou:
zensical build -f docs/zensical.toml -c
zensical build -f docs/zensical.ja-JP.toml
zensical build -f docs/zensical.zh-CN.toml
zensical build -f docs/zensical.pt-BR.toml
Ao adicionar uma página nova, registre-a na nav do zensical*.toml correspondente.
Antes de Abrir um PR¶
Rode só as checagens que batem com o que você mudou. Não precisa rodar tudo em todo PR.
- Mudanças em Rust —
bun cargo fmt -- --check,bun cargo check,bun cargo clippy -- -D warnings,bun cargo test --workspace --tests - Mudanças na UI —
bun run format,bun run test:ui - Integração desktop —
bun run build - Docs — compile cada locale que você editou
Expectativas de PR¶
- Um objetivo por PR. Correção de bug ou refactor ou feature nova — não tudo junto.
- Siga os padrões existentes. Se o arquivo já tem uma convenção, combine com ela.
- Descreva o que mudou e como verificou. Screenshots ou clipes curtos para UI; before/after para pipeline.
- Sem shims de retrocompatibilidade. Substitua o código antigo no lugar — nada de pastas
v2/nem aliases deprecated. - Sem refactors oportunistas. Se achou algo a limpar sem relação, abra um PR separado.
PRs pequenos e focados são revisados mais rápido do que PRs grandes e misturados.