Simple Binary Encoding (SBE) is a message codec for low-latency financial applications that encodes and decodes binary messages at the OSI layer 6 presentation level.
SBE addresses the need for extremely fast serialization and deserialization of structured data in financial systems where microsecond-level latency matters. It achieves this through a binary format specification that minimizes overhead and enables direct memory access patterns. Messages are defined in XML schemas and code generators produce language-specific encoders and decoders that work directly with buffers, avoiding the allocation and copying overhead of many general-purpose serialization frameworks.
The tool suits teams building low-latency trading systems, market data feeds, or other financial infrastructure where message throughput and latency are critical constraints. It is particularly effective when paired with the Aeron messaging system, which the Java and C++ implementations integrate with directly. The project provides reference implementations across Java, C, C++, C#, Golang, and Rust, so adoption depends on your technology stack. The Java implementation depends on Agrona for buffer management. If you are working in a domain outside high-frequency finance or do not have strict latency requirements, the complexity of binary encoding may not justify the performance gains over simpler alternatives.
The project maintains active development across multiple language implementations, with the C++ build system using CMake and the Java tooling built on Gradle. The C implementation is noted as a work in progress. Code generation is a core feature, allowing developers to define message schemas once and produce optimized codec implementations for their target language. The project provides example code and benchmarks to help evaluate performance characteristics in your specific use case.