Pure Zig · Ultra-Low Latency
ZigBolt
Designed for the hot path
Latency and throughput figures are design targets, not measured marketing numbers — the benchmark suite ships with the repo so you can verify on your own hardware.
< 200ns IPC Latency
Shared memory channels with cache-line-padded atomics, designed for sub-200ns p50 round-trip latency (design target — run the bundled benchmarks on your hardware).
Zero Copy
Messages decoded in-place via pointer cast. No serialization overhead on the hot path.
100M+ msg/sec
Comptime wire codecs targeting 100M+ encode/decode operations per second.
No Runtime, No GC
A single native shared library (about a megabyte). No JVM, no runtime, no garbage collector.
Everything on the wire, nothing in the way
A pure-Zig messaging core: lock-free data structures, zero-copy codecs, an Aeron-compatible protocol, and bindings for five languages.
Lock-Free Buffers
SPSC (acquire/release atomics) and MPSC (CAS two-phase commit) ring buffers. 1-to-N broadcast buffer for market data fan-out.
SBE Codec
FIX-standard Simple Binary Encoding with groups, vardata, and comptime schemas. NewOrderSingle, ExecutionReport, MarketData messages built-in.
Aeron-Compatible Protocol
Wire protocol flyweights (DataHeader, StatusMessage, NAK, Setup, RTT, Error). AIMD congestion control. Min/Max/Tagged flow control.
Raft Consensus
Leader election, log replication, durable write-ahead log, persisted vote/term, atomic snapshots, and crash recovery. Liveness (election timers, transport) is the embedder’s responsibility; not yet validated with multi-process fault injection.
Archive & Replay
Segment-based message recording with per-record CRC32 and configurable fsync. Catalog with time/stream queries. Sparse index. Standalone LZ4-style compression utility.
Five Language Bindings
C, Rust, Python, Go, and TypeScript bindings — all five build and pass smoke tests against the C-ABI shared library.
Hardened & Tested
The IPC shared-memory header is treated as untrusted (bounds-checked), ring buffers are memory-safe with back-pressure, and the FIX/SBE/flyweight wire parsers validate untrusted input — a malformed datagram cannot cause out-of-bounds access or panics.
How ZigBolt stacks up
ZigBolt latency figures are design targets; figures for other systems are their publicly stated numbers. Benchmark on your own hardware.
| Feature | ZigBolt | Aeron | Chronicle Queue | ZeroMQ |
|---|---|---|---|---|
| Language | Zig | Java/C++ | Java | C |
| IPC Latency (p50) | < 200 ns (target) | ~200 ns | ~1 us | ~10 us |
| SBE Codec | Native | XML codegen | Chronicle Wire | No |
| GC Pauses | None | JVM GC | JVM GC | None |
| Reliability | NAK-based | NAK-based | Replication | REQ/REP |
| Cluster | Raft (experimental) | Raft | Enterprise | None |
| Binary Size | ~1 MB (no JVM) | ~20 MB | ~50 MB | ~1 MB |
Related Projects
ZigBolt is developed alongside these projects by the same team.
Measure it yourself.
Clone the repo, run the benchmark suite, and read the docs — zero runtime, zero GC, zero excuses.