baboon
Let the Baboon do the monkey job.
Baboon is a minimal Data Modeling Language and compiler that provides ergonomic, declarative schemas and enforces reliable schema evolution. The compiler runs as a fast immutable multi-phase DAG transform, and is easy to understand and maintain.
Essentially, you define your data structures and Baboon generates implementations for you. Then you define new versions, Baboon generates new versions of the structures, the conversions from old structure versions to new ones and forces your to provide conversions which cannot be derived automatically. Also it comes with extremely efficient tagless binary encoding for all your structures.
Currently generates C# and Scala, more backends are on the way.
Highlights
Automatic codec derivation for JSON and UEBA (Ultra-Efficient Binary Aggregate, a custom tagless binary format)
Evolution-aware codegen: derives migrations when possible, emits stubs when manual work is required
Set-based structural inheritance with + , - , and ^ operators
, , and operators Algebraic data types ( adt ), DTOs ( data ) and enums.
... continue reading