thalo-rs/esdl
49.1
Weak · 21 September 2026
1.2k
lines of production code
Rust
primary language
4
measurements over time
What this system is
This system is an ESDL schema parser and validator that defines a domain-specific language for describing data structures and events. It parses and validates schema definitions, supporting scalar types, versioning, and optional fields, while providing a structured \Schema\ representation for further processing. The system previously generated Rust code from these schemas but has since removed the code generation module, focusing instead on parsing, validation, and serialization capabilities.
Behavioural changes
Add bank-account example using ESDL
A new example file, examples/bank-account.esdl, has been added to demonstrate a BankAccount aggregate with OpenedAccount, DepositedFunds, and WithdrewFunds events, each carrying a Float amount or initial balance.
examples · low confidence
ESDL schema language gains new scalar types and syntax updates
The ESDL schema language now supports \Long\, \Double\, and \Bytes\ scalar types, while \Timestamp\ and \UInt\ have been removed. The syntax for return types has changed to use the \-\>\ separator, and optional types are now explicitly marked with a \?\ suffix. Documentation in README.md has been updated to reflect these changes, including a new table of scalar types and examples of optional and array types.
(repo-wide) · high confidence
Parser supports version declarations and new scalar types
The parser now recognizes a \version\ declaration in the schema, storing parsed versions in the \Schema\ struct. Additionally, new scalar types \Long\, \Double\, and \Bytes\ have been added to the type system, while the parser syntax for optional types has changed from \!\ to \?\ and return types now use \-\>\ as a separator.
src/parser · high confidence
Removal of Rust code generation module
The Rust code generation module has been removed from the codebase. Specifically, the \src/codegen\ directory, which previously handled compiling schemas into Rust code, has been deleted. This includes the \error.rs\ and \mod.rs\ files that defined the \Compiler\ struct and associated logic for generating Rust types, events, and commands from schema definitions.
src/codegen · high confidence
Schema parsing and validation restructured with new error handling
The \src\ module now exposes a unified \parse\ function that parses and validates ESDL schema strings, returning a \Schema\ struct that includes a \version\ field and supports serialization. Error handling has been consolidated into a new \error.rs\ module, which adds \Io\, \MissingVersion\, \MultipleVersions\, and \Parse\ error variants, and implements \From\ conversions for \nom\_supreme\ errors. The \Schema\ struct and related types (\Aggregate\, \Command\, \Event\, \CustomType\, \RepeatableType\) now derive \Eq\, \Serialize\, and \Deserialize\, and the old \codegen\ feature-gated code generation logic has been removed from these types.
src · high confidence
Dependencies
Update Rust dependencies and add semver support
The project updates several Rust dependencies to newer versions: nom-supreme 0.6→0.8, serde and serde\_derive 1.0.134→1.0.137, syn 1.0.86→1.0.92, thiserror/thiserror-impl 1.0.30→1.0.31, and proc-macro2/quote 1.0.36/1.0.15→1.0.38/1.0.18. It also adds the semver crate (1.0.6) as a new dependency, while removing the unused wasm feature flag and updating the package version to 0.6.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 51 → 49 (-2.0)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (-0.2)
- Architecture 69 → 69 (+0.0)
- Maturity 41 → 31 (-9.8)
- Readiness 36 → 47 (+10.6)
- Security 100 → 100 (+0.0)
Resolved (5)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- Test reliability not included
- dormant codebase — no living knowledge left to concentrate
New (4)
- Documentation: no usage examples (README.md)
- Duplicated block (8 lines × 2) (src/schema.rs)
- Outdated: semver
- Outdated: serde
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
thalo-rs/esdl was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 63481ca72ce76374d7fc777054babdf5af0c7483 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.