Parse.
OpenAPI, GraphQL, Protobuf and SQL converge on one unified AST. Everything after this is format-agnostic.
MetaEngine compiles OpenAPI, GraphQL, Protobuf and SQL into production-ready client code — without hand-written templates. Language-native idioms. Framework-correct. Fast enough to iterate.
Every source format becomes the same typed graph. Everything after parsing is format-agnostic — which is why adding a new target or source doesn't force a rewrite of the other.
Four stages — each reasoning about code the way a senior engineer on that stack would, not a string-interpolation pass.
OpenAPI, GraphQL, Protobuf and SQL converge on one unified AST. Everything after this is format-agnostic.
Names, references, type relationships and nullability are resolved semantically — not as strings.
Language-specific passes reshape the graph for each target: Angular signals, Python dataclasses, Go idioms.
Output runs through the target's own formatter — Prettier, Black, gofmt, rustfmt. Deterministic and diff-friendly.
Every converter here runs the same IR pipeline. Source format on the left, target stack on the right — pick the pair that matches your repo.
Three ground rules the engine holds to — so the output of MetaEngine stays legible, stable, and safe to regenerate.
The engine reasons about types, references and nullability — not character substitution. A Pet.id that is a UUID stays a UUID through every emitter.
Each target reads like code a senior engineer on that stack would ship: Angular inject(), React hooks, Python httpx, Go context, Rust Result<T, E>.
Output runs through the language’s own formatter, so regenerating against the same spec and engine version yields the same bytes. Commit the generated code and CI re-runs land as no-op diffs; when the engine evolves, the diff surfaces the upgrade clearly.