Collecting Rust best practices. Part of the Kataglyphis Ecosystem for robust code sharing and rapid development.
For official docs follow this link.
- About The Project
- Getting Started
- Tests
- Run
- Docs
- Updates
- Roadmap
- Contributing
- License
- Contact
- Acknowledgements
- Literature
This template is a foundational part of the Kataglyphis Ecosystem, providing robust Rust best practices. It works synergistically with other projects like Kataglyphis ContainerHub to provide seamless code sharing, rapid development, and consistent identity across our web and systems engineering stack.
- Features are to be adjusted to your own project needs.
| Category | Feature | Implement Status |
|---|---|---|
| Packaging agnostic | Binary only deployment | ✔️ |
| Lore ipsum | ✔️ | |
| Lore ipsum agnostic | ||
| LORE IPSUM | ✔️ | |
| Advanced unit testing | 🔶 | |
| Advanced performance testing | 🔶 | |
| Advanced fuzz testing | 🔶 |
Legend:
- ✔️ - completed
- 🔶 - in progress
- ❌ - not started
This enumeration also includes submodules.
If you just want the newest versions allowed by your current constraints (updates Cargo.lock only):
Update all:
# update packages
cargo update
# update versions in Cargo.toml
cargo install cargo-edit
cargo upgrade --dry-run --verbose
# --pinned
cargo upgrade --incompatible- Clone the repo
git clone --recurse-submodules git@github.com:Kataglyphis/Kataglyphis-RustProjectTemplate.git
cargo run -- read --path ../README.mdBuild + Run (CPU via tract):
cargo run --bin kataglyphis_rustprojecttemplate --features gui_windows,onnx_tract -- gui --backend dx12Build + Run (ONNX Runtime + DirectML):
cargo run --bin kataglyphis_rustprojecttemplate --features gui_windows,onnxruntime_directml -- gui --backend dx12Build + Run (ONNX Runtime + CUDA, NVIDIA):
# PowerShell
$env:KATAGLYPHIS_ORT_DEVICE="cuda"
cargo run --bin kataglyphis_rustprojecttemplate --features gui_windows,onnxruntime_cuda -- gui --backend dx12
# CMD
set KATAGLYPHIS_ORT_DEVICE=cuda
cargo run --bin kataglyphis_rustprojecttemplate --features gui_windows,onnxruntime_cuda -- gui --backend dx12Optional environment variables:
KATAGLYPHIS_ONNX_MODEL– Pfad zum ONNX-Modell (Default: models/yolov10m.onnx)KATAGLYPHIS_ONNX_BACKEND–tractoderort(Default: automatisch)KATAGLYPHIS_ORT_DEVICE–cpu|auto|cuda(Default:cpu)KATAGLYPHIS_PREPROCESS–letterbox|stretch(Default:stretch)KATAGLYPHIS_SWAP_XY– setze1, falls die Modell-Ausgabe X/Y vertauscht (Default:0)KATAGLYPHIS_SCORE_THRESHOLD– Score-Schwelle für Erkennung (Default:0.5)KATAGLYPHIS_INFER_EVERY_MS– Inferenz-Intervall in ms (Default:100,0= jedes Frame)
CUDA Hinweise:
- Benötigt NVIDIA-Treiber + CUDA/cuDNN Runtime auf dem System.
- Wenn CUDA-Init fehlschlägt, kann
KATAGLYPHIS_ORT_DEVICE=autogenutzt werden (fällt auf CPU zurück).
Overlay:
- Zeigt FPS, Inferenz-Latenz, CPU/RSS und eine CPU-Historie.
- Inferenz kann im Overlay ein-/ausgeschaltet werden.
cargo +nightly check --manifest-path Cargo.toml --target wasm32-unknown-unknown -Z build-std=std,panic_abortcargo run --features gui_windows,onnxruntime_directml -- --resource-log --resource-log-interval-ms 1000 --resource-log-gpu=true guiOptional: zusätzlich in Datei schreiben
cargo run --features gui_windows,onnxruntime_directml -- --resource-log --resource-log-file .\resource.log guiDiese Demos sind als separates Binary integriert und per Feature gated.
cargo run --features burn_demos --bin burn-demos -- --helpBeispiele:
cargo run --features burn_demos --bin burn-demos -- tensor-demo
cargo run --features burn_demos --bin burn-demos -- linear-regression --epochs 50 --steps-per-epoch 50 --lr 0.02 --batch-size 256
cargo run --features burn_demos --bin burn-demos -- xor --epochs 2000 --lr 0.05
cargo run --features burn_demos --bin burn-demos -- two-moons --epochs 200 --steps-per-epoch 50 --lr 0.01 --batch-size 256
# ONNX Runtime YOLOv10m Demo (Default model: models/yolov10m.onnx)
cargo run --features burn_demos --bin burn-demos -- onnx-yolov10 --runs 1 --print-topk 3cargo run --features gui_windows -- gui --backend dx12
# Vulkan backend
cargo run --features gui_windows -- gui --backend vulkan
# Auto-select (wgpu PRIMARY)
cargo run --features gui_windows -- gui --backend primaryVoraussetzungen:
- Windows SDK (inkl.
makeappxundsigntool) - PowerShell 5.1+ oder PowerShell 7+
MSIX bauen (inkl. Release-Build):
powershell -ExecutionPolicy Bypass -File .\scripts\windows\New-MsixPackage.ps1MSIX bauen und mit einer vorhandenen PFX signieren:
powershell -ExecutionPolicy Bypass -File .\scripts\windows\New-MsixPackage.ps1 `
-CertificatePath .\certs\my-signing-cert.pfx `
-CertificatePassword "<PASSWORD>"MSIX bauen und Testzertifikat automatisch erzeugen:
powershell -ExecutionPolicy Bypass -File .\scripts\windows\New-MsixPackage.ps1 `
-CreateTestCertificate `
-CertificatePassword "<TEST_CERT_PASSWORD>"Output:
- Paket:
dist\msix\Kataglyphis.RustProjectTemplate_<VERSION>_x64.msix - Staging-Inhalt:
dist\msix\staging\
Wichtige Parameter:
-Binary(Default:kataglyphis_rustprojecttemplate)-Features(Default:gui_windows,onnxruntime_directml)-Version(Format:Major.Minor.Build[.Revision])-Publisher(muss zum Signaturzertifikat passen, z. B.CN=Kataglyphis)-SkipBuild(packt vorhandenen Release-Build erneut)
MSIX installieren (mit Testzertifikat):
- PowerShell als Administrator öffnen.
- Zertifikat in vertrauenswürdige Stores importieren.
- Paket installieren.
$certPath = "C:\\GitHub\\Kataglyphis-Inference-Engine\\ExternalLib\\Kataglyphis-RustProjectTemplate\\dist\\msix\\Kataglyphis.RustProjectTemplate.testcert.pfx"
$msixPath = "C:\\GitHub\\Kataglyphis-Inference-Engine\\ExternalLib\\Kataglyphis-RustProjectTemplate\\dist\\msix\\Kataglyphis.RustProjectTemplate_0.1.0.0_x64.msix"
$pwd = ConvertTo-SecureString "<TEST_CERT_PASSWORD>" -AsPlainText -Force
Import-PfxCertificate -FilePath $certPath -Password $pwd -CertStoreLocation "Cert:\\LocalMachine\\Root"
Import-PfxCertificate -FilePath $certPath -Password $pwd -CertStoreLocation "Cert:\\LocalMachine\\TrustedPeople"
Add-AppxPackage -Path $msixPathInstallationsprüfung:
Get-AppxPackage -Name "Kataglyphis.RustProjectTemplate" | Select-Object Name, PackageFullName, StatusTroubleshooting:
0x800B0109: Zertifikatskette ist nicht vertrauenswürdig. Zertifikat wie oben inLocalMachine\\RootundLocalMachine\\TrustedPeopleimportieren (Admin erforderlich).Import-PfxCertificate: Zugriff verweigert: PowerShell nicht als Administrator gestartet.- Details zum letzten Deploy-Fehler anzeigen:
Get-AppxLog -ActivityID <ACTIVITY_ID>App nach Installation starten:
- Über das Startmenü nach
Kataglyphis RustProjectTemplatesuchen und starten. - Oder per PowerShell:
$pkg = Get-AppxPackage -Name "Kataglyphis.RustProjectTemplate"
Start-Process "shell:AppsFolder\$($pkg.PackageFamilyName)!App"MSIX Update / Reinstall:
- Neue Version mit höherer
-Versionbauen und signieren. - Dann erneut installieren:
Add-AppxPackage -Path "C:\\GitHub\\Kataglyphis-Inference-Engine\\ExternalLib\\Kataglyphis-RustProjectTemplate\\dist\\msix\\Kataglyphis.RustProjectTemplate_<NEW_VERSION>_x64.msix"MSIX deinstallieren:
Get-AppxPackage -Name "Kataglyphis.RustProjectTemplate" | Remove-AppxPackage# WGPU (recommended)
cargo run --features gui_wgpu -- gui --backend vulkan
# GTK demo
cargo run --features gui_unix -- guicargo doc --openHow to update all installed packages:
- Install updater:
cargo install cargo-update- Now update all packages:
cargo install-update -asudo v4l2-ctl --list-formats-ext -d /dev/video0
gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! autovideosink
gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480,framerate=30/1 ! autovideosinkUpcoming :)
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Jonas Heinle - @Cataglyphis_ - jonasheinle@googlemail.com
Project Link: https://github.com/Kataglyphis/...
Some very helpful literature, tutorials, etc.