There are currently two parsers used within the ukhas.net ecosystem.
Written by Mike in the early days of UKHasnet.
Written by Adam over the IoW hack weekend. Fast and safe. Currently not compliant with the latest version of the spec: comments may be located anywhere and may only contain lowercase letters and a few symbols, among other minor differences. Might be fixed by the time you read this. Only works with Rust programs at the moment but should be possible to use it in other languages.
Written by Odd to facilitate bringing UKHASnet nodes into Home Assistant via MQTT. It is not a strict parser, and will (probably) parse anything kinda looking like a valid packet. Wiki page