Open source · Rust · BDEW EDI@Energy FV2025-10-01 · FV2026-10-01
German energy-market operations,
from raw EDIFACT to production — in Rust.
Open-source, full-stack German energy-market operations platform in Rust: BDEW MaKo / EDI@Energy market communication (all 346 Prüfidentifikatoren), an event-sourced process runtime, NNE/EEG settlement, retail billing, AS4 transport and BO4E integration — every regulated process as a correct, auditable workflow.
One platform, four layers
Protocol & process
Parse, validate and build all 17 EDI@Energy EDIFACT types; run every MaKo process as an event-sourced, replayable workflow over AS4/ebMS3 (BDEW AS4-Profil, sign+encrypt, signed receipts).
Market data
A typed BO4E market-data hub — MaLo/MeLo, contracts, supply status, grid-operator registry — with a CloudEvents fan-out and OIDC/JWT security.
Settlement & billing
Role-neutral grid settlement (NNE/MMM/MSB), EEG/KWKG feed-in, and retail billing with EN 16931 e-invoicing — each position carrying a legal-reference calculation trace.
Customer & operations
A tamper-evident FI-CA ledger, contracts & tariff catalog, a customer portal, BNetzA KPI observability, and optional AI orchestration.
Testable from Python
makotest binds the same Rust core the platform runs — BDEW check digits, the Werktag calendar, EDIFACT build and AHB validation — so a test and production can never disagree about what “valid” means.
Built for the regulatory pace
German market communication moves fast — LFW24, §14a, §41a dynamic tariffs, §42b/c energy sharing, the EDIFACT→API transition, the MaBiS-Hub cutover. mako’s domain layer is deliberately split from transport and format, so when the market moves, the platform moves with a codegen run — not a rewrite.
- Correct & auditable: event-sourced processes, replayable state, GoBD/§146 AO period seals.
- Every regulated process modeled — for every market role.
- Readable, verifiable, extensible: source you can audit and run.
Start in minutes
# Parse & validate an EDIFACT interchange
cargo add edi-energy
# Run the protocol daemon
docker run --rm -p 8080:8080 \
ghcr.io/hupe1980/makod:latest
# Drive it from Python — generators, assertions, pytest plugin
pip install makotest