XR Corpus is a local, session-aware terminology service for speech recognition and translation. It loads versioned Markdown corpora, selects relevant terminology within each model's budget, keeps bounded bilingual conversation history, and exposes stable HTTP and Rust client APIs.
- Markdown remains the source of truth for static corpora.
- Activation state and prompt snapshots belong to a server-side session.
- Static corpora and short-lived runtime providers use one catalog contract.
- Callers receive rendered prompts and provenance spans, not internal catalog objects.
- Idle sessions, snapshots, and dynamic data are bounded and expire automatically.
cargo run -p xr-corpus-server -- --config config.example.jsonThe server listens on 127.0.0.1:7766 by default. GET /healthz reports readiness.
Start integrations with the typed Rust client:
let corpus = xr_corpus_client::CorpusClient::connect("http://127.0.0.1:7766").await?;
let session = corpus.create_session().await?;connect verifies API compatibility before returning. See API.md for the complete
session lifecycle, dynamic-provider contract, error format, and curl examples. A compilable runtime
provider is included at crates/client/examples/publish_runtime.rs.
See corpora/v1/SCHEMA.md. Each terminology row uses the fixed language
order declared in the file and leaves unavailable translations empty between English commas.
The automatic VRCX runtime provider was informed by febilly/Yakutan. Its source file retains SPDX attribution.
GNU Affero General Public License v3.0 only (AGPL-3.0-only).