Rust — on-device speech AI that runs fully offline and ships as a single binary: speech-to-text (gigastt) and speaker diarization (polyvoice) — the two projects I actively build. Local-first by default: zero cloud APIs, zero vendor lock-in, models ship with the binary. On the side — agent & dev tooling experiments in Rust / Go (see the fold below).
Prior production backend — Node.js / TypeScript (NestJS, Moleculer) and Python (FastAPI, Django): REST APIs and gateways from scratch, message brokers, payment & telephony integrations, large legacy refactors, and email / document (PDF/DOCX) pipelines.
gigastt — on-device Russian speech recognition
Live WebSocket streaming · RTF ~0.10 (≈10× real-time on M1 CPU) · 3.55% WER (golos_crowd_1k, in-domain) · leads on far-field / phone / YouTube in its like-for-like 6-engine benchmark · one binary · no cloud
cargo install gigastt && gigastt serve
# WebSocket: ws://127.0.0.1:9876/v1/ws
# REST API: http://127.0.0.1:9876/v1/transcribeGigaAM v3 + ONNX Runtime · INT8 ~225 MB, negligible WER change · multilingual heads (ru/en/kk/ky/uz) · REST / SSE + async jobs API · punctuation, casing & ITN out of the box · Android FFI + NNAPI · CPU / CoreML / CUDA · cargo / brew / npm / Docker
polyvoice — speaker diarization for Rust
Who spoke when, on CPU, without Python · ~18.5% DER VoxConverse-test (collar 0; pyannote 3.1 = 11.3%) · ~30 MB of models
cargo add polyvoice # Rust
pip install polyvoice # PythonSilero VAD + Pyannote powerset segmentation + WeSpeaker embeddings · K-means / AHC / NME-SC / VBx · streaming + overlap detection · who-said-what transcription via companion ASR crates · Rust / Python / C FFI / CLI / MCP server · crates.io + PyPI + Docker
Powers the diarization feature in phonex, nihostt and phostt.
phonex— multilingual on-device STT engine · offline + streaming, single binary, HTTP / gRPC / FFI ·crates.ionihostt— Japanese STT server (ReazonSpeech-k2-v2) · WebSocket / REST / SSE ·crates.io+ Homebrew + Dockerphostt— Vietnamese STT server (Zipformer-vi RNN-T) · streaming ·crates.io+pypilocalmt— offline Android translation SDK · GGUF / llama.cpp via JNI · pre-release
Experiments — agent tooling, backend, archived
Side projects in varying states of maturity; not all actively maintained.
Agent & dev tooling
kimi-wire— typed Rust client for the Kimi Code CLI Wire protocol ·crates.io· Go twin:kimi-wire-gomcp-guard— guardian & stdio proxy for MCP servers (Go) · process pool, timeouts, tool permissions, rate limits, audit logkimi-lite— Go port of MoonshotAI's kimi-code coding CLI · single binary · MCP + ACPgitr— async typed git wrapper for AI agents · JSON CLI + MCP server · library oncrates.iocargo-kimi— Cargo subcommand scoring Rust files 0–100 on contract quality ·crates.iocoad— written methodology for safe, reviewable, bounded coding-agent workkimi-dotfiles— composable configs, instructions and skills for the Kimi CLIjobsmith— AI job-application assistant for hh.ru · Rust TUI · Typst PDF CVs
Backend
go-ozon-marketplace— portfolio pet project: e-commerce backend · 8 Go microservices + Rust API gateway · Saga · Outbox · CQRS · Kafka · ClickHouse · mTLS
Archived
omk— Wire-first orchestration for Kimi CLI · archived June 2026 (post-mortem in the README)





