← First Pair Library

23 The Refactored QueryGraph Stack

The architecture is now a set of released boundaries rather than a collection of sibling checkouts. The canonical repository is querygraph/querygraph. Its Rust crate is the composition kernel; its Python and TypeScript packages are language projections over the same routes, wire formats, semantic contracts, and TypeDID fixtures. The extracted projects remain independently versioned and are consumed from registries, so a clean build does not depend on an engineer having a particular ~/src layout.

Diagram 21
Surface Distribution Responsibility
Rust querygraph 0.4.2 on crates.io service, route, wire, and stack composition
Python querygraph 0.4.1 on PyPI ergonomic CLI, notebooks, MCP, and navigator projection
TypeScript @querygraph/querygraph 0.1.2 on npm typed Node-facing projection and shared contracts
Foundations TypeSec 0.13.1, Grust 0.12.1, LakeCat 0.3.0 authority, persistence/indexing, and catalog proof boundaries

Dependency direction is deliberate: Sail, Grust, TypeSec, LakeCat, and Marciana do not depend on QueryGraph. QueryGraph consumes their released APIs and supplies the product-level composition. The Python and TypeScript clients cannot mutate protected memory directly; they submit the same authenticated operations that cross the Rust boundary.