Rust — on-device speech AI that runs fully offline after a one-time model download, shipped as a single binary: speech-to-text (gigastt) and speaker diarization (polyvoice) — the two projects I actively build. Local-first by default: no cloud APIs at runtime, no vendor lock-in. 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
file RTF ~0.10 (≈10× real-time on M1 CPU) · batch 3.55% WER clean (in-domain; statistical tie vs Vosk) · leads far-field / phone / YouTube in a like-for-like 6-engine bench · one binary · no cloud at runtime
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 · opt-in multilingual heads (ru/en/kk/ky/uz) · REST / SSE + async jobs · optional punctuation, casing & ITN · Android FFI + NNAPI · CPU / CoreML / CUDA · cargo / brew / npm / pip / Docker
polyvoice — speaker diarization for Rust
Who spoke when, on CPU, without Python · ~15% DER VoxConverse-test (collar 0; pyannote 3.1 = 11.3%) · ~8.4 MB MIT INT8 models
cargo add polyvoice --features "pipeline-native,vbx"Powerset segmentation + WeSpeaker embeddings + VBx (AHC / K-means / NME-SC alternatives) · overlap resegmentation · who-said-what via companion ASR crates · Rust / Python / C FFI / CLI / MCP · crates.io + PyPI
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)





