Crate Documentation NexusScribe is built as a Rust workspace with 12 specialized crates.
Architecture Overview ┌─────────────────────────────────────────────────────────────────┐
│ nexus-scribe-web │
│ (HTTP Server & Handlers) │
├──────────────┬──────────────┬──────────────┬────────────────────┤
│ nexus-scribe │ nexus-scribe │ nexus-scribe │ nexus-scribe │
│ -api │ -auth │ -db │ -collaboration │
├──────────────┴──────────────┴──────────────┴────────────────────┤
│ nexus-scribe-core │
│ (Types, Config, Errors) │
├─────────────────────────────────────────────────────────────────┤
│ nexus-scribe │ nexus-scribe │ nexus-scribe │
│ -transcription │ -speaker │ -audio │
├─────────────────────┼─────────────────────┼─────────────────────┤
│ nexus-scribe │ nexus-scribe │ nexus-scribe │
│ -models │ -hailo │ -utils │
└─────────────────────┴─────────────────────┴─────────────────────┘
Crate Summary Crate Description Key Dependencies nexus-scribe-core Core types, config, error handling serde, chrono, uuid nexus-scribe-utils Utilities, validators, sanitization regex, chrono nexus-scribe-db Aegis-DB abstraction layer aegis-client, tokio nexus-scribe-auth JWT, passwords, MFA, RBAC argon2, jsonwebtoken nexus-scribe-api REST/WebSocket type definitions serde, axum nexus-scribe-web HTTP server, handlers, middleware axum, tower nexus-scribe-audio Audio capture, preprocessing, VAD cpal, rubato nexus-scribe-transcription Whisper integration, decoder whisper-rs nexus-scribe-speaker Speaker diarization, MFCC ndarray nexus-scribe-collaboration Real-time OT, WebSocket presence tokio-tungstenite nexus-scribe-hailo Hailo NPU device management hailo-rs (optional) nexus-scribe-models ML model registry, loader, cache tokio, dashmap
Dependency Graph nexus-scribe-web
├── nexus-scribe-core
├── nexus-scribe-auth
├── nexus-scribe-db
├── nexus-scribe-api
└── nexus-scribe-collaboration
nexus-scribe-transcription
├── nexus-scribe-core
├── nexus-scribe-audio
├── nexus-scribe-hailo (optional)
└── nexus-scribe-models
nexus-scribe-speaker
├── nexus-scribe-core
└── nexus-scribe-audio
nexus-scribe-collaboration
├── nexus-scribe-core
└── nexus-scribe-db
Building Individual Crates # Build a specific crate
cargo build -p nexus-scribe-auth
# Test a specific crate
cargo test -p nexus-scribe-auth
# Build with features
cargo build -p nexus-scribe-web --features "vault,saml"
Feature Flags Crate Feature Description nexus-scribe-web vault HashiCorp Vault integration nexus-scribe-web tls Native TLS termination nexus-scribe-web saml SSO/SAML authentication nexus-scribe-web compliance Full compliance suite nexus-scribe-transcription hailo Hailo NPU acceleration
Adding a New Crate Create crate directory: mkdir crates/nexus-scribe-new
Add to workspace in Cargo.toml: [workspace]
members = [
"crates/nexus-scribe-new" ,
# ...
]
Create Cargo.toml: [package]
name = "nexus-scribe-new"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
[dependencies]
nexus-scribe-core = { path = "../nexus-scribe-core" }
Follow the standard file header format in all Rust files. Table of contents