The panproto-* crates in the workspace, with one-line descriptions and dependency direction. The full dependency graph appears in explanation/architecture. Source for any crate lives at crates/<name>/ in the repository.
Generalized algebraic theories: sorts, operations, equations, and the colimit machinery that composes them.
panproto-gat-macros
class! and inductive! macros for declaring GATs in Rust source.
panproto-schema
Schema representation: vertices, edges, the schema graph, validation. Hosts the AbstractSchema / DecoratedSchema typed-newtype distinction and the layout-fibre forgetful U (Schema::forget_layout).
panproto-inst
Instances: data records over a schema, including Value::List and the typed value lattice.
panproto-mig
Migration engine: morphisms between schema theories, restrict and lift.
panproto-lens
Bidirectional lenses: get/put/complement, the three round-trip laws, fibration over schemas, optic kinds, protolenses, the cross-crate enrichment_registry for layout and other schema-level fibres.
panproto-lens-dsl
Declarative lens DSL with Nickel, JSON, and YAML surfaces.
panproto-theory-dsl
Declarative theory DSL for defining custom protocols.
panproto-check
Breaking-change detection: classifies a schema diff as fully compatible, backward compatible, or breaking via the Classification enum, alongside the breaking/non_breaking lists and compatible boolean on CompatReport.
panproto-protocols
Built-in protocol definitions composed via theory colimits.
panproto-expr
Pure, total expression language: terms, types, environment evaluation.
panproto-expr-parser
Haskell-style surface syntax parser for panproto-expr.
Parse/emit codecs that bridge native formats (JSON, Avro, Protobuf, …) to panproto-inst.
panproto-parse
Tree-sitter full-AST parsing across 261 languages, with interstitial preservation. Hosts the put-direction (decorate) of the parse / emit lens and the LayoutEnricher adapter installed in panproto-lens’s enrichment registry.
panproto-grammars
Pre-compiled tree-sitter grammars used by panproto-parse.
panproto-grammars-all
Umbrella grammar companion pack for the Python wheel.
Public re-export facade over the nine always-on library crates (gat, schema, inst, mig, lens, check, protocols, io, vcs); the expression and DSL crates (panproto-expr, panproto-expr-parser, panproto-lens-dsl, panproto-theory-dsl) are separate dependencies.
panproto-cli
The schema binary.
panproto-wasm
WebAssembly bindings; consumed by the TypeScript SDK.
panproto-py
Native Python bindings via PyO3.
panproto-c
C ABI for non-Rust language bindings; the Haskell binding consumes its 112-entry surface.
The interactive REPL for theories, terms, and morphisms is part of panproto-cli, reachable as schema theory repl; it is not a separate crate.