Repository navigation
v0.3.0
WireForge 0.3.0 brings MAVLink 2, a tutorial that runs in CI, and a new web UI.
Highlights
- MAVLink 2 (
wireforge init --protocol mavlink2): the frame with its 24-bit message id, HEARTBEAT, GPS_RAW_INT and COMMAND_ACK with extension fields, ATTITUDE, GLOBAL_POSITION_INT and COMMAND_LONG. Checked byte for byte against pymavlink, including frames whose trailing zero bytes are left out. A Lua hook lets the Wireshark dissector verify MAVLink's checksum. - Payloads without trailing zeros for any interface (
trim_trailing_zeros): generated C++ and C, the reference codec, the Wireshark dissector, the layout report and the compatibility check all know the rule. - Tutorial (docs/tutorial): ten chapters around one drone link, from the model to a vehicle that talks to a pymavlink ground station, tests, CI, Wireshark and AI agents. Its commands run in CI with the released wheel.
- Web UI: light and dark themes, the logo, and Generate in C++17 or C99 with the download of code and tests.
- How it compares: docs/COMPARISON.md, next to protobuf, nanopb, Kaitai Struct, mavgen and cantools.
Also
wireforge testuses the project's own checksum plugin, so a project frominit --protocoltests without--plugins.- Header bit-fields of whole bytes are generated as fields of their own width (
Encoder::write_width). - Long fuzzing runs weekly as four parallel jobs.
Install
pip install "wireforge[server,mcp]"
wireforge init drone --protocol mavlink2 && wireforge test drone -o build/droneGitHub Action: uses: oguzhankynk/wireforge@v0.3.0.
Free for development, evaluation and CI; the generated code and its runtime are yours under MIT.
