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

Configuration reference

The project manifest is panproto.toml at the project root. It is read by panproto-project::load_config and consumed by every CLI subcommand that operates on a project rather than a single file.

Top-level shape

[workspace]
name = "my-project"
exclude = ["build/**", "**/.cache"]

[[package]]
name = "user-api"
path = "schemas/user"
protocol = "json-schema"

[[package]]
name = "user-events"
path = "schemas/events"
protocol = "avro"

Sections

[workspace]

FieldTypeRequiredDescription
namestringyesWorkspace identifier; used for VCS commits and emitted artifacts.
excludelist of glob patternsnoGlobs to exclude from project assembly. Evaluated relative to the manifest directory.

[[package]]

One entry per schema package. Packages are assembled into a single project by schema coproduct.

FieldTypeRequiredDescription
namestringyesPackage identifier, unique within the workspace.
pathpathyesDirectory containing the package’s schemas, relative to the manifest.
protocolstringnoProtocol name (json-schema, atproto, protobuf, …). When omitted, the protocol is inferred from file extensions and contents.

Generating a manifest

schema init [PATH] initialises a panproto repository in the given directory (default .). The repository’s bookkeeping lives in .panproto/; the user-authored manifest is panproto.toml and is created by hand.

For programmatic creation, the panproto-project crate exposes generate_config and serialize_config.

Authoritative source

Manifest schema: crates/panproto-project/src/config.rs.

See also