Skip to content
@AdHoc-Protocol

Unirail Group

AdHoc communication protocol division

AdHoc protocol

Multi-language binary protocol code generator. Describe your protocol once in C# as a DSL, get working serialization, network plumbing and state machines in Java, C#, TypeScript, C++, Go and Rust.

Open source

Beyond the generator, the organization keeps in the open what has been built with it: converters that bring other schema languages into AdHoc, and whole protocols re-expressed in AdHoc, generated, and bound to the real software on at least one side. Each repository is self-contained: fetch, build, generate, validate, run.

Converters to AdHoc protocol

Already have a protocol described somewhere else? Run it through the matching converter and see it as an AdHoc description: packs, enums, hosts, connections, RPC. The output is a starting point you refine by hand, not a finished protocol — AdHoc says more than any of these formats can — but it is idiomatic AdHoc from the first run, not a transliteration.

Converter Source format What it comes from
ROS2-to-AdHoc ROS 2 .msg / .srv / .action robotics interfaces
DBC-to-AdHoc Vector CAN database .dbc automotive CAN buses
Avro-to-AdHoc Apache Avro .avsc / .avpr data pipelines, Kafka
Thrift-to-AdHoc Apache Thrift IDL services, Hadoop stack
FlatBuffers-to-AdHoc FlatBuffers .fbs games, Apache Arrow
Matter-to-AdHoc Matter (CSA) cluster XML smart home devices
ASN1-to-AdHoc ASN.1 modules .asn telecom, PKI, X.500
FIX-to-AdHoc FIX SBE and QuickFIX dictionaries electronic trading
MAVLink-to-AdHoc MAVLink dialect XML drones, flight stacks
DSDL-to-AdHoc OpenCyphal / DroneCAN DSDL vehicle buses
CRSF-MSP-to-AdHoc CRSF and MSP firmware headers RC links, flight controllers
LwM2M-to-AdHoc OMA LwM2M object XML IoT device management

Every converter above is listed under the adhoc-converter topic.

Two more converters need no repository — they are built into AdHocAgent itself, so the file you already have is the only argument:

Source format Run Notes
Protocol Buffers .proto AdHocAgent.exe MyProtocol.proto A whole directory works too; extra arguments are import search paths, and a final argument that is not a .proto is the output directory.
OpenAPI / Swagger .json / .yaml AdHocAgent.exe api.yaml A second argument names the output .cs; by default it lands next to the input.

Same promise as the repositories above: the result is a starting point you refine, not a finished protocol.

Protocols over AdHoc

A well-known protocol written as an AdHoc description, generated into the hosts it needs, and bound to the real thing, so the description is checked against live traffic and not only against its spec. These are the reference for how a serious protocol looks in AdHoc: value packs, conduits, RPC actors, state chains, headers, injected fields, all in use.

Repository Protocol What is in it
CQL-over-AdHoc Apache Cassandra native protocol, CQL binary protocol v5 The whole native_protocol_v5.spec as one description, the spec's text carried in the doc comments. The generated Java Client and Server hosts. A binding that serves the protocol inside an Apache Cassandra 5.0 node beside the native transport: every request runs through Cassandra's own execute, every result is served as a view over the ResultSet, no copies, back pressure through the Stream conduits. A Docker node runner, a smoke client, and the same scenario on the native port for comparison. Jars on the releases page.

Pinned Loading

  1. AdHoc-protocol AdHoc-protocol Public

    AdHoc is a low level binary protocol boilerplate multilingual code generator.

    C# 33 4

Repositories

Showing 10 of 19 repositories

Top languages

Loading…

Most used topics

Loading…