Expand description
§club-kdl-codegen
Generate type / schema definitions in multiple languages from a single KDL schema file (KDL-first). Targets: Rust, TypeScript, Zod, and SurrealQL.
§Pipeline
*.kdl ──parser──▶ Schema IR ──emitter──▶ Rust / TypeScript / Zod / SurrealQLThe intermediate ir::Schema representation decouples parsing from
emission: the parser is written once, and each target is one Emitter
implementation.
See the design memory mem_1Cb5mWnMTdzXfJVoNGFwup and ROADMAP.md
(Phase 1) for the full plan.
Modules§
- emit
- Language emitters — one
crate::Emitterimplementation per target. - ir
- Schema IR — the intermediate representation between the KDL parser and the language emitters.
- parser
- Parser — KDL schema file →
crate::ir::Schema.
Traits§
- Emitter
- A code generation target. Each language emitter (
emit::RustEmitter/emit::TypeScriptEmitter/emit::ZodEmitter/emit::SurrealQlEmitter) implements this trait against the sharedir::Schema.