# ETDL — Event Tree Definition Language Compiler
[](https://crates.io/crates/etdl-cli)
[](LICENSE)
A Rust compiler and runtime for the [ETDL specification](https://github.com/usamassem/etdl-specification).
ETDL is a declarative, design-time DSL for reliability-aware, event-driven business processes. It models causal sequences as **event trees** (IEC 62502) and failure probabilities as **fault trees** (IEC 61025).
## Crates
| `etdl-cli` | [](https://crates.io/crates/etdl-cli) | CLI binary for compiling and validating `.etdl` documents |
| `etdl-parser` | [](https://crates.io/crates/etdl-parser) | `.etdl` document parser, ECEL expression parser, AsyncAPI resolution |
| `etdl-compiler` | [](https://crates.io/crates/etdl-compiler) | Semantic validator, fault tree resolver, code generator |
| `etdl-core` | [](https://crates.io/crates/etdl-core) | Runtime library: BranchMonitor, retry, SLA, chaos injection |
## Quick Start
```bash
# Install the CLI
cargo install etdl-cli
# Compile an .etdl document to Rust
etdl compile order-fulfillment.etdl --target rust --out-dir ./generated
# Validate an .etdl document
etdl validate order-fulfillment.etdl
```
## License
Apache 2.0 — see [LICENSE](LICENSE).