Skip to content

ctx-parser (Rust)

The canonical Rust implementation of the CTX parser. Compiles to native code, Node.js (NAPI), Python (PyO3), and WebAssembly.

[dependencies]
ctx-parser = "0.1"
Terminal window
npm install @agentctx/ctx-parser-native
Terminal window
pip install ctx-parser
Terminal window
npm install @agentctx/ctx-parser-wasm
use ctx_parser::{Parser, Statement, Operator, Plane};
let parser = Parser::new();
let stmt: Statement = parser.parse("?k \"auth\" #code @7d ^3")?;
assert_eq!(stmt.operator, Operator::Search);
assert_eq!(stmt.plane, Plane::Knowledge);
assert_eq!(stmt.target, "auth");
assert_eq!(stmt.filters.len(), 3);
import { parse } from '@agentctx/ctx-parser-native';
const stmt = parse('?k "auth" #code ^3');
// Same interface as TypeScript CTXParser
from ctx_parser import parse
stmt = parse('?k "auth" #code ^3')
print(stmt.operator) # "?"
print(stmt.plane) # "k"
print(stmt.target) # "auth"
import init, { parse } from '@agentctx/ctx-parser-wasm';
await init();
const stmt = parse('?k "auth" #code ^3');
EnvironmentParse (simple)Parse (complex)
Rust native0.004ms0.008ms
Node.js (NAPI)0.005ms0.010ms
Python (PyO3)0.006ms0.012ms
WASM (browser)0.010ms0.020ms
TypeScript (baseline)0.080ms0.150ms

The Rust parser is 20x faster than the TypeScript baseline.

The Rust parser passes the same 75 test cases as the TypeScript parser, ensuring byte-for-byte compatibility:

Terminal window
cd crates/ctx-parser
cargo test
# 75 tests passed
Terminal window
# Native
cargo build --release
# Node.js NAPI
napi build --release
# Python PyO3
maturin develop --release
# WebAssembly
wasm-pack build --target web