Bu sayfa İngilizceden çevrilmiştir. İngilizce sayfayı okuyun
zeyn komutu proje oluşturur, Feature ekler, bir uygulamayı denetler ve ajanlar için bir MCP sunucusu çalıştırır.
Komutlar
| Komut | Ne yapar |
|---|---|
zeyn new <name> | Standart Feature yapısıyla bir uygulama oluşturur |
zeyn new <name> --lib | Birkaç uygulamanın paylaştığı model, Feature ve metin kütüphanesi oluşturur |
zeyn g feature <name> | Modeller, store, action'lar ve screen'lerle src/features/<name> ekler |
zeyn routes | Feature'ları, screen'leri, rotaları, API'leri ve erişimi listeler |
zeyn check | Derler ve yapısal sorunları ile eksik çevirileri bildirir |
zeyn check --fix | src, tests ve examples içinde adı değişen Zeyn API'lerini yeniden yazar, sonra denetler |
zeyn mcp | AI ajanları için stdio üzerinde bir MCP sunucusu çalıştırır |
crates.io üzerinden kurun:
cargo install zeyn-cli
zeyn new my-app
cd my-app
cargo runBu depo içinde CLI'yi Cargo üzerinden çalıştırın:
cargo run -p zeyn-cli -- new my-app
cd my-app
cargo runYeni bir uygulama
zeyn new, derlenen, testlerini geçen ve ajanlara verilen kuralları izleyen bir proje yazar:
AGENTS.mdveCLAUDE.md: proje kuralları ve ajanlar için bir framework dizini..mcp.json:zeynMCP sunucusunu kaydeder; böylece bir ajanzeyn_checkvezeyn_docsçağırabilir.config/app.json: varsayılanlar.APP_*ortam değişkenleri bunları geçersiz kılar; örneğinserver.addriçinAPP_SERVER__ADDR.locales/en.jsonvelocales/tr.json: kullanıcının gördüğü her metin.src/features/: her Feature için bir klasör, örnek birnotesFeature'ı ile.rustfmt.toml,clippy.toml,deny.toml,rust-toolchain.tomlveCargo.tomliçindeki[lints]: CI'ın zorunlu kıldığı standartlar.rustfmt.tomlchain_width = 40ayarlar; böylece kod yukarıdan aşağı okunur: bundan uzun bir çağrı zinciri, satır başına ortalama bir ya da iki nokta olacak şekilde, her çağrı ayrı satıra konur. Ajanlar ve insanlar bir listeyi uzun tek bir satırdan daha hızlı inceler ve diff'ler değişen tek çağrıyı gösterir. Bu ayarı koruyun.
DataGrid::of(search_items)
.paging(Paging::pages(25))
.column(Item::code)
.column(Item::qty)şöyle değil: DataGrid::of(search_items).paging(Paging::pages(25)).column(Item::code).column(Item::qty).
Dockerfileve.dockerignore: küçük bir konteyner imajı.- Yaygın CI sunucuları için, hepsi aynı denetimleri çalıştıran (
cargo fmt --check,cargo clippy -D warnings,cargo test,cargo deny check) veCargo.tomlile eşleşmeyen birvX.Y.Zetiketini reddeden pipeline'lar:- GitHub Actions için
.github/workflows/ci.yml; yanında.github/dependabot.yml(haftalık Cargo ve action güncellemeleri) ve bir pull request kontrol listesi; - GitLab için
.gitlab-ci.yml; - Jenkins için
Jenkinsfile(Docker ajanı,cargo llvm-covile kapsama).
- GitHub Actions için
sonar-project.properties: SonarQube analizi (Clippy sorunları vetarget/lcov.infoiçinden LCOV kapsaması). GitHub workflow'u,SONAR_HOST_URLdepo değişkeni veSONAR_TOKENsırrı tanımlıysa bunu çalıştırır; Jenkins, işSONAR_ENABLED=trueayarlıyorsa çalıştırır.SECURITY.mdveCHANGELOG.md(Keep a Changelog).- Git kuruluysa (Windows, macOS ya da Linux) ve klasör zaten bir deponun içinde değilse
maindalında yerel bir git deposu. Hiçbir şey commit edilmez, bu yüzden ilk commit kendi adınızı ve e-postanızı taşır.--no-gitbunu atlar.
Her klasör için Project structure sayfasına bakın.
Bir uygulamayı denetleme
zeyn check önce derleyiciyi, sonra uygulamanın kendi denetimlerini çalıştırır (App::check): yinelenen rotalar, iki kez kaydedilmiş screen'ler, bir screen'in ihtiyaç duyduğu ama kimsenin kaydetmediği servisler, kullanılamaz kısayollar, WCAG AA kontrastının altındaki tema belirteçleri ve bir dilde eksik çeviri anahtarları. Bir şey yanlışsa hata ile çıkar; böylece CI bunu çalıştırabilir.
Bir Zeyn sürümü bir API'nin adını değiştirdiğinde zeyn check --fix eski adları yeniden yazar, örneğin Grid yerine DataGrid ve GridQuery yerine DataQuery, sonra yeniden denetler.
zeyn check --fixDocker
Oluşturulan Dockerfile iki aşamada derler ve root yetkisi olmayan bir kullanıcıyla distroless bir imajda çalışır. İkili dosya kendi sağlığını <app> health ile denetler; HEALTHCHECK bunu kullanır.
docker build -t my-app .
docker run -p 3000:3000 -e APP_SERVER__ADDR=0.0.0.0:3000 my-appOluşturulan bir uygulamanın imajı yaklaşık 43 MB'tır ve boşta çalışan bir uygulama birkaç MB RAM kullanır.
MCP sunucusu
zeyn mcp, stdio üzerinden MCP konuşur. Araçları zeyn_docs (konuya göre framework başvurusu), zeyn_describe (geçerli dizindeki uygulamanın Feature'ları, screen'leri, rotaları ve sorunları), zeyn_check (fix: true ile check --fix çalıştırır), zeyn_test ve zeyn_new_feature'dır. MCP and AI agents sayfasına bakın.