The shared API and message schema for the Kyanite stack.
Status: experimental — expect breaking changes.
schema owns the Protocol Buffers definitions (schema.v1) that the Kyanite
components speak to each other, and generates language bindings for Go,
TypeScript, and Rust from a single source of truth. Wire data is
validated at runtime with protovalidate
against the buf.validate rules compiled into the descriptors.
schema/
├── buf.yaml buf module configuration
├── buf.gen.yaml code generation (managed mode; Go/TS/Rust)
├── schema/v1/ the .proto definitions (package schema.v1)
└── gen/
├── go/ generated Go (protobuf + vtprotobuf + connect-go)
├── ts/ generated TypeScript (@kyanite/schema, bufbuild/es)
└── rust/ generated Rust (kyanite-schema)
The Go bindings are importable under the vanity path
src.kyanite.computer/schema/gen/go.
Requires buf (and network access for remote plugins):
buf dep update
buf lint
buf generateCommit the .proto change and the regenerated gen/ output together.
See the org-wide CONTRIBUTING guide. Contributions are dual-licensed.
See the org-wide SECURITY policy.
Dual-licensed under either of Apache-2.0 (LICENSE-APACHE) or MIT (LICENSE-MIT) at your option.