finds.dev← search

// the find

apache/iggy

★ 4,311 · Rust · Apache-2.0 · updated Jun 2026

Apache Iggy: Hyper-Efficient Message Streaming at Laser Speed

Apache Iggy is a persistent message streaming server built from scratch in Rust, using io_uring and a thread-per-core shared-nothing architecture. It supports QUIC, TCP, WebSocket, and HTTP transports with server-side consumer offset tracking and consumer groups. Aimed at teams who find Kafka too heavy but need real throughput guarantees and don't want to bolt a message queue onto an existing database.

Zero-copy serialization and io_uring on Linux means the performance numbers (5GB/s+, sub-millisecond p99) are plausible and come from the architecture, not just benchmark tuning. Multi-transport out of the box — QUIC for unreliable networks, TCP for internal services, HTTP for anything else — without running separate brokers. The connector runtime uses dynamically loaded Rust plugins via trait objects, so you get type safety and speed without recompiling the server for each integration. SDK coverage is unusually broad for a project this young: Rust, C#, Java, Python, Go, Node all with published packages and BDD test suites.

Single-node only right now — clustering via Viewstamped Replication is on the roadmap but not shipped, which is a hard blocker for any production use case that can't tolerate a single point of failure. The thread-per-core io_uring design means peak performance requires Linux; running in Docker on macOS or Windows degrades silently and the README buries this. Server-side message compression isn't implemented yet despite the config field existing, which is a gotcha for anyone moving high-cardinality text payloads. Still in Apache Incubator, so the governance, release process, and long-term maintenance trajectory are all TBD.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →