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 workspace contains 36 panproto-* crates. This page groups them by dependency role. The repository Cargo.toml is authoritative for membership, and each crate’s manifest is authoritative for features.

Theory, schemas, and migration

CrateRole
panproto-gatGeneralized algebraic theory data, checking, morphisms, transforms, colimits, and finite-model evaluation (Cartmell 1986).
panproto-gat-macrosclass! and inductive! procedural macros targeting panproto-gat.
panproto-schemaSchema graph, protocol rules, validation, induction, layout erasure, and canonical digests.
panproto-instW-type, functor, and graph instances. It also provides compiled migration tables, source-to-target surviving-fragment restriction, (\Sigma_F), (\Pi_F), target-to-source (\Delta_F), complements, and instance-aware expression environments.
panproto-migMigration existence and compilation, the plain source-to-target restrict-based lift, separate (\Sigma_F) and (\Pi_F) entry points, schema correspondence search, spans, and total-morphism search.
panproto-checkBreaking-change classification and compatibility reports.
panproto-protocolsBuilt-in semantic protocol definitions, parsers, emitters, and theory registration.

panproto-mig::solve implements exact bucket elimination (Dechter 1999), budgeted hybrid search with EDAC* cost propagation [Allouche et al. (2015); Larrosa & Schiex (2004); de et al. (2005)], an all-different constraint for injective mappings (McCreesh and Prosser 2015), and McSplit partitioning for isomorphism requests (McCreesh et al. 2017). Searching for a morphism defines these paths. What panproto verifies states what their certificates establish.

Lenses, expressions, and DSLs

CrateRole
panproto-lensConcrete lenses, complements, composition, law checkers, protolenses, optics, and enrichment registration.
panproto-exprBounded functional expression AST, evaluator, builtins, values, and lightweight type inference.
panproto-expr-parserHaskell-style lexer, parser, desugaring, and pretty printer for panproto-expr.
panproto-dsl-evalShared Nickel, JSON, and YAML document evaluation for declarative DSLs.
panproto-lens-dslDeclarative lens compilation from Nickel, JSON, or YAML.
panproto-theory-dslDeclarative theories, morphisms, protocols, and composition from Nickel, JSON, or YAML.

Parsing, I/O, and projects

CrateRole
panproto-ioInstance-level codecs for native data formats, with optional tree-sitter integration.
panproto-parseFeature-selected tree-sitter full-AST parsing, layout preservation, source emission, and parser registry.
panproto-grammarsVendored tree-sitter grammar build and group-* / lang-* Cargo features. group-all currently names 261 grammars.
panproto-projectDirectory walking, package detection, manifest configuration, parsing cache, import resolution, and schema coproduct assembly.
panproto-grammars-allPython companion extension containing group-all.
panproto-grammars-functionalPython companion extension for group-functional.
panproto-grammars-webPython companion extension for group-web.
panproto-grammars-systemsPython companion extension for group-systems.
panproto-grammars-jvmPython companion extension for group-jvm.
panproto-grammars-scriptingPython companion extension for group-scripting.
panproto-grammars-dataPython companion extension for group-data.
panproto-grammars-devopsPython companion extension for group-devops.
panproto-grammars-mobilePython companion extension for group-mobile.
panproto-grammars-musicPython companion extension for group-music.

Version control and transport

CrateRole
panproto-vcsContent-addressed schema history, refs, staging, commits, merge, verification status, and data versioning.
panproto-gitBidirectional translation between git and panproto-vcs.
panproto-git-remoteGit remote helper for panproto:// push, pull, and clone.
panproto-xrpcXRPC client for panproto-node VCS operations.

Facades and bindings

CrateRole
panproto-coreRust facade re-exporting 13 always-on libraries and three optional support crates.
panproto-cliThe schema executable, including the theory REPL.
panproto-wasmHandle-based WebAssembly API used by the TypeScript SDK.
panproto-pyNative Python extension built with PyO3.
panproto-cC ABI consumed by the Haskell and Swift bindings.

Feature-gated dependency edges

CrateFeatureEffect
panproto-corefull-parseAdds and re-exports panproto-parse with its default grammar group.
panproto-coreprojectAdds panproto-project and implies full-parse.
panproto-coregitAdds panproto-git and implies project.
panproto-coretree-sitterEnables panproto-io/tree-sitter for format-preserving codecs.
panproto-parse, panproto-grammarsgroup-*, lang-*Selects grammar groups or individual grammars. Both default to group-core.
panproto-pygroup-*, lang-*Mirrors grammar selection into the Python extension. The default is group-core.
panproto-cfull-parse, project, git, format-preserving, fullAdds the corresponding optional panproto-core surfaces. full enables all four.
panproto-wasmformat-preservingEnables panproto-core/tree-sitter.
panproto-iotree-sitterAdds panproto-parse, selected data grammars, and tree-sitter support.

xtask is a workspace member but not a panproto-* library. It contains repository maintenance commands, including CLI-document generation.

See also