Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Crate map

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.

Core

CrateDescription
panproto-gatGeneralized algebraic theories: sorts, operations, equations, and the colimit machinery that composes them.
panproto-gat-macrosclass! and inductive! macros for declaring GATs in Rust source.
panproto-schemaSchema representation: vertices, edges, the schema graph, validation. Hosts the AbstractSchema / DecoratedSchema typed-newtype distinction and the layout-fibre forgetful U (Schema::forget_layout).
panproto-instInstances: data records over a schema, including Value::List and the typed value lattice.
panproto-migMigration engine: morphisms between schema theories, restrict and lift.
panproto-lensBidirectional 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-dslDeclarative lens DSL with Nickel, JSON, and YAML surfaces.
panproto-theory-dslDeclarative theory DSL for defining custom protocols.
panproto-checkBreaking-change detection: classifies schema diffs as fully compatible, backward compatible, or breaking.
panproto-protocolsBuilt-in protocol definitions composed via theory colimits.
panproto-exprPure, total expression language: terms, types, environment evaluation.
panproto-expr-parserHaskell-style surface syntax parser for panproto-expr.

I/O and parsing

CrateDescription
panproto-ioParse/emit codecs that bridge native formats (JSON, Avro, Protobuf, …) to panproto-inst.
panproto-parseTree-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-grammarsPre-compiled tree-sitter grammars used by panproto-parse.
panproto-grammars-allUmbrella grammar companion pack for the Python wheel.
panproto-grammars-functionalFunctional-language grammar pack.
panproto-grammars-webWeb-language grammar pack.
panproto-grammars-systemsSystems-language grammar pack.
panproto-grammars-jvmJVM-language grammar pack.
panproto-grammars-scriptingScripting-language grammar pack.
panproto-grammars-dataData-language grammar pack.
panproto-grammars-devopsDevOps-language grammar pack.
panproto-grammars-mobileMobile-language grammar pack.
panproto-grammars-musicMusic-language grammar pack (SuperCollider, LilyPond, ABC, Csound, ChucK, Glicol, Tidal, Strudel).
panproto-projectMulti-file project assembly via schema coproduct, manifest loading.

Version control

CrateDescription
panproto-vcsSchematic version control: DAG, refs, commit/branch/merge, pushout-based merge with universal-property verification, data versioning.
panproto-gitBidirectional bridge between panproto-vcs and git.
panproto-git-remoteCustom git remote helper for cloning panproto repositories over git.
panproto-xrpcXRPC client for cospan-node VCS operations.

Bindings and surfaces

CrateDescription
panproto-corePublic re-export facade. The single dependency a downstream Rust user needs.
panproto-cliThe schema binary.
panproto-wasmWebAssembly bindings; consumed by the TypeScript SDK.
panproto-pyNative Python bindings via PyO3.
panproto-cC ABI for non-Rust language bindings (Haskell first).
panproto-replREPL engine for theories, terms, and morphisms.

Acceleration

CrateDescription
panproto-jitLLVM JIT compilation for accelerated migrations.
panproto-llvmLLVM IR protocol definition and lowering.

Repository tasks

CrateDescription
xtaskRepository tasks (not published). Includes gen-cli-docs.

See also

  • Architecture for the dependency direction and layering.
  • The repository Cargo.toml for authoritative workspace membership.