Skip to content

Install — Go, JS, Python

All three ports are published from the same release and carry the same version.

Terminal window
go get github.com/muthuishere/citenexus/golang@v0.12.0

Go 1.26 · pkg.go.dev · the pure-Go deterministic core + Ask / AskWith over a corpus — no cgo, no native library. Extraction, lid.176 detection and the Lance store are opt-in: build the Rust cdylib (cd rust && cargo build --release) and compile with -tags citenexus_ffi.

  • Python — the reference facade. Inject any OpenAI-compatible embedding + LLM (+ optional reranker and vision), point it at a local folder or an S3 bucket, and call ingest / ask / evaluate.
  • Go & JavaScript — the deterministic cite-or-abstain core, in pure Go and pure JS: the 14-script tokenizer, chunking, BM25 + RRF fusion, EU-IDs, the answer-language chain, the grounding gate, and ask over a corpus handed in inline. Extraction (PDF/DOCX/PPTX/XLSX/HTML/MD/CSV/txt) and lid.176 language detection are not part of that pure port — they are opt-in native bindings over the shared Rust engine (Go: -tags citenexus_ffi; JS: the /ffi subpath), and both need the Rust cdylib built locally first.

Every pinned algorithm is byte-for-byte identical across the three — tokenize v1 and v2, BM25, RRF, the chunker, the answer-language chain, EU-IDs and the frozen gate — held there by the shared conformance/ suite of golden vectors.

The one documented exception is ADR-0009’s per-claim faithfulness gate, which is Python-only on the answer path today: only Python splits an answer into atomic claims and verifies each one against the cited passage, while the ports verify the whole answer as a single claim. All three run the same order- and polarity-aware predicate — what that predicate checks, and why the one it replaced was unsound, is on the faithfulness gate.

Head to the Quickstart next, or read how it works if you want the pipeline before the code.