Protocol engineering
Protocols specified, implemented and fuzzed, from binary device links to gRPC and QUIC services.
01 · Build
What we build
When two systems disagree, it is usually about a message neither side wrote down.
- Written specifications with message formats, states and error codes
- Parsers and stacks in Rust or C for TCP, UDP, CAN, Modbus and serial links
- gRPC, QUIC and WebSocket services with versioned schemas
- Wireshark dissectors, so every message can be read on the wire
- Fuzzing with libFuzzer and AFL++ before any parser ships
- Conformance suites that test other vendors’ implementations
02 · Demo · sample data
Try it live.
A working sample with made-up data. It runs in your browser; nothing is sent anywhere.
net@lab:~/tlm-proto$ cargo test --package tlm-codec running 38 tests test result: ok. 38 passed; 0 failed net@lab:~/tlm-proto$ tlm-conform --peer 10.0.4.21:7400
03 · Features
What it does well
- 01
Specification first
Formats, states and timeouts are written down and reviewed before code is written.
- 02
State machines
Each connection follows an explicit state machine, so unexpected messages are rejected.
- 03
Versioned messages
New fields are added without breaking older peers, and every version is tested.
- 04
Fuzzed parsers
Parsers run for hours against malformed input before release, and crashes become tests.
- 05
Readable on the wire
A dissector decodes your protocol in Wireshark and tshark for anyone debugging it.
- 06
Bounded resources
Message sizes, queues and timeouts have limits, so one bad peer cannot stall the rest.
04 · FAQ
Questions
Should we design our own protocol at all?
Often not. If MQTT, OPC UA, gRPC or a published fieldbus already fits, we use it and save you a specification to maintain. A custom protocol makes sense for tight bandwidth, hard timing or a link no standard covers, and then it is written down in full.
Can you document a protocol nobody wrote down?
Yes, for systems you own or are licensed to use. We capture traffic, decode the messages, and write a specification from what we observe, marking anything inferred. That specification then becomes the basis for a new implementation or a test suite.
How do you test against other vendors?
We build a conformance suite from the specification: valid exchanges, edge cases and deliberately malformed messages. It runs against your implementation and any other you have access to, and reports exactly which message and field disagree.
05 · Services
Services that go with it
- ServiceCustom software developmentSoftware designed and built around the way your business works, shown to you working at every review.
- ServiceSoftware architectureA clear design for how your software is split, stores data, talks to other systems and grows, before code is written.
- ServiceCode reviewAn independent review of your codebase, with clear findings ranked by risk and a recommended fix for each.
06 · Software
Related software
- SoftwareNetworking softwareSoftware that configures, documents and checks your network, so changes are repeatable and mistakes are caught.
- SoftwareIoT platformsConnected devices onboarded securely, monitored live and updated remotely from one platform.
- SoftwareEmbedded firmwareDependable code for the microcontrollers inside your product, from first board bring-up to updates in the field.
- SoftwareAPIs and integrationsWell-documented APIs and dependable connectors that let your systems and partners exchange data safely.