Meterbus Wired Data-Link
Wired M-Bus data-link frames and codecs for Rust.
This crate provides typed, validated frame construction plus
exact and streaming decoders for the wired M-Bus link layer defined by
EN 13757-2:2018+A1:2023. The
default build is no_std and allocation-free. It is
designed for masters, meters, bridges, embedded devices, and diagnostic tools.
- Typed ACK, NACK, short, control, and long frames
no_std, allocation-free codecs with optionalalloc- Exact and incremental stream decoding
- Strict decoding or noise-resynchronizing recovery
- Typed fields and detailed validation errors
Official bindings are available for Node.js, Python, and browser WebAssembly:
Installation
Add the crate without any features for a no_std, allocation-free build:
[]
= "0.0.1"
To use convenience methods that return vectors, enable the optional alloc
feature:
[]
= { = "0.0.1", = ["alloc"] }
License
Copyright © 2026 Nicolas HEDGER.
Licensed under either of:
at your option.
Reference material
Development is guided by the following standards:
The current implementation follows the link-layer frame formats, communication types, addressing rules, and sequencing fields from EN 13757-2:2018+A1:2023. That standard uses the FT1.2 frame format defined by the EN 60870-5 series.
| Document | Title |
|---|---|
| EN 13757-1:2021 | Data exchange |
| EN 13757-2:2018+A1:2023 | Wired M-Bus communication |
| EN 13757-3:2025 | Application protocols |
| EN 60870-5-1 | Transmission frame formats |
| EN 60870-5-2 | Link transmission procedures |