5.3 KiB
5.3 KiB
Technology Stack
Analysis Date: 2026-03-28
Languages
Primary:
- Rust 2021 - core backend, inference runtime, CLI, shared contracts, metrics, and Tauri desktop backend in
Cargo.toml,crates/inference-server/src/main.rs,crates/inference-core/src/engine.rs,crates/localllm-cli/src/main.rs, andtauri-app/src-tauri/src/lib.rs - TypeScript 5.5 - desktop frontend, runtime manager UI, chat UI, and tests in
tauri-app/package.json,tauri-app/src/App.tsx, andtauri-app/src/features/runtime/components/RuntimeSettingsDrawer.tsx
Secondary:
- CSS - hand-authored styling with app-wide tokens and feature CSS modules in
tauri-app/src/index.css,tauri-app/src/components/Sidebar.css, andtauri-app/src/components/ChatView.css - Markdown - product and architecture docs in
README.MD,docs/api/overview.md, anddocs/app/overview.md - Python - benchmark and experiment scripts in
experiments/bench_chat_latency.py,experiments/bench_cli_surface.py, and related files underexperiments/
Runtime
Environment:
- Rust toolchain targeting native desktop/server binaries; no workspace-level rust-toolchain file detected
- Node.js runtime for Vite/Tauri frontend workflows in
tauri-app/package.json
Package Manager:
- Cargo for Rust workspace dependencies and binaries in
Cargo.toml - npm is the documented frontend package manager via
README.MD:47; lockfiles for npm and pnpm are both present intauri-app/package-lock.jsonandtauri-app/pnpm-lock.yaml - Lockfile: present for Rust and frontend in
Cargo.lockandtauri-app/package-lock.json
Frameworks
Core:
- Axum 0.8 - local HTTP API in
Cargo.tomlandcrates/inference-server/src/routes.rs - React 18 - desktop UI shell and chat surface in
tauri-app/package.jsonandtauri-app/src/App.tsx - Tauri 2 - desktop shell, local process control, file dialogs, and frontend-to-Rust command bridge in
tauri-app/src-tauri/Cargo.tomlandtauri-app/src-tauri/src/lib.rs - llama.cpp FFI via custom
llama-sys- model loading and token generation incrates/inference-core/src/engine.rsandcrates/inference-core/src/session.rs
Testing:
- Vitest 4 - frontend/unit/component tests in
tauri-app/package.jsonandtauri-app/src/features/runtime/components/RuntimeSurface.test.tsx - Rust built-in test harness - backend/unit tests co-located in files such as
crates/api-contracts/src/chat.rsandtauri-app/src-tauri/src/runtime/state.rs
Build/Dev:
- Vite 5 - frontend dev/build tool in
tauri-app/vite.config.ts - TypeScript compiler - typecheck step in
tauri-app/package.json:9 - Tauri CLI 2 - desktop dev/build entry in
tauri-app/package.json:11
Key Dependencies
Critical:
tokio- async runtime for API server inCargo.tomlandcrates/inference-server/src/main.rstower-http- CORS and trace middleware inCargo.tomlandcrates/inference-server/src/compat.rsserde/serde_json- shared request/response contracts across API, CLI, and Tauri incrates/api-contracts/src/chat.rsandtauri-app/src-tauri/src/runtime/config.rsclap- CLI command surface incrates/localllm-cli/src/main.rsureq- synchronous HTTP transport for CLI live execution incrates/localllm-cli/src/main.rs:404marked,dompurify,highlight.js- markdown rendering/sanitization/code highlighting intauri-app/src/lib/markdown.ts@tauri-apps/apiand@tauri-apps/plugin-shell- frontend/Tauri bridge intauri-app/package.jsonandtauri-app/src/features/runtime/api.ts
Infrastructure:
uuid- response IDs for chat completions incrates/inference-server/src/routes.rs:126tracingandtracing-subscriber- backend logging and startup diagnostics incrates/inference-server/src/main.rsasync-stream- SSE streaming implementation incrates/inference-server/Cargo.tomlandcrates/inference-server/src/routes.rs:137
Configuration
Environment:
- Backend runtime is environment-driven via
LOCALLLM_MODEL,LOCALLLM_PROFILE,LOCALLLM_ADDR,LOCALLLM_GPU_LAYERS,LOCALLLM_CTX,LOCALLLM_API_KEY,LOCALLLM_CORS_ORIGINS,LOCALLLM_AUTH_HEADER,LOCALLLM_AUTH_SCHEME,LOCALLLM_SYSTEM_PROMPT, andLOCALLLM_MODEL_ALIASESincrates/inference-server/src/main.rsandcrates/inference-server/src/compat.rs - Desktop runtime config is persisted as JSON in the app data directory through
tauri-app/src-tauri/src/runtime/config.rs - Frontend fallback runtime snapshot is persisted in
localStoragethroughtauri-app/src/features/runtime/api.ts
Build:
- Rust workspace build in
Cargo.toml - Tauri desktop build in
tauri-app/src-tauri/Cargo.tomlandtauri-app/src-tauri/tauri.conf.json - Frontend dev server/build in
tauri-app/vite.config.tsandtauri-app/package.json
Platform Requirements
Development:
- Rust + Cargo for backend and desktop backend in
README.MD:56 - Node.js/npm for the Tauri frontend in
README.MD:57 - Local
.ggufmodel for real inference inREADME.MD:58 - Optional NVIDIA GPU for accelerated local runtime; CPU fallback profile exists in
README.MD:59andcrates/inference-core/src/profile.rs
Production:
- Local-first desktop deployment via Tauri app in
tauri-app/ - Local HTTP API deployment as standalone binary
localllmincrates/inference-server/Cargo.toml:8
Stack analysis: 2026-03-28