Pure .NET · Raft Consensus · Zero Dependencies

Streaming infrastructure
built for .NET

IonStream is a high-performance distributed streaming platform with Raft-based consensus, gRPC-native protocol, and append-only log storage — delivered as a single native binary.

gRPC
Native Protocol
Raft
Consensus
7
Client SDKs
AOT
Native Binary
0
External Deps

One binary. Full streaming stack.

IonStream replaces complex multi-service deployments with a single self-contained broker — no JVM, no ZooKeeper, no external coordination.

CLIENT SDKs .NET C# · Channels Go REST API TypeScript gRPC Python Async gRPC Rust Async gRPC Java gRPC Browser REST / gRPC-Web IonStream.Broker Dashboard · Reverse Proxy · REST /api/v1 · Cluster Visibility RAFT CLUSTER IonStream.Server ● Leader Produce · Consume · Raft IonStream.Server ○ Follower Follower Reads · Replication IonStream.Server ○ Follower Follower Reads · Replication Raft Raft WAL · Segments · Sparse Index WAL · Segments · Sparse Index WAL · Segments · Sparse Index

Everything you need.
Nothing you don't.

Built from the ground up for modern .NET workloads with no compromises on performance or correctness.

Raft Consensus

Full Raft implementation for leader election and log replication. No ZooKeeper, no external coordinator — just the algorithm, built-in.

gRPC Native

First-class gRPC with HTTP/2 multiplexing. Bidirectional streaming, typed contracts, and a full REST proxy — no custom binary protocol.

Append-Only Log Storage

Memory-mapped log segments with sparse offset indexes, configurable size-based rolling, time-based retention, and compaction.

Consumer Groups

Complete consumer group protocol: join, sync, heartbeat, rebalance, offset commit and fetch — with durable offset tracking per group.

OpenTelemetry Metrics

Built-in Prometheus exporter, operation-level duration histograms, Raft consensus metrics, and pre-built Grafana dashboards.

Cross-Cluster Replication

Mirror topics across clusters with REPLICA_N_* environment variables. Loop prevention via cluster naming — built for geo-redundancy.

Retry Queues & DLQ

Per-topic retry pipelines with configurable backoff stages and dead letter queues. Consumers ack or nack each message; failed messages auto-route through staged retries into the DLQ. Full DLQ management API and dashboard.

Native AOT Compilation

Compiles to a self-contained native binary for win-x64 and linux-x64. Instant startup, minimal memory, no runtime required.

TLS 1.3 First-Class

Automatic certificate generation with shared cluster CA derivation. Bring your own PFX or let IonStream self-manage — zero-config TLS for dev and prod.

Dynamic Cluster Expansion

Add nodes to a running cluster without restarts. Odd-count additions trigger automatic Raft quorum promotion. Even-count joins as read-only mirrors.

Streaming-first APIs for modern .NET

IonStream's .NET client wraps System.Threading.Channels for natural async/await produce and consume patterns. No callbacks, no polling.

  • IAsyncEnumerable<T> for streaming consumption
  • ChannelWriter / ChannelReader for buffered production
  • ReadOnlyMemory<byte> throughout — zero-copy paths
  • Leader-aware routing — client auto-follows leader changes
C#
await using var client = new IonStreamClient("localhost", 9000);

// Produce
await client.SendAsync(new ProducerMessage(
    topic:  "events",
    value:  Encoding.UTF8.GetBytes("hello"),
    key:    Encoding.UTF8.GetBytes("key-1")
));

// Consume with Channels API
ChannelReader<StreamMessage> reader =
    client.CreateConsumerChannel("events", "my-group");

await foreach (var msg in reader.ReadAllAsync())
{
    var text = Encoding.UTF8.GetString(msg.Value.Span);
    Console.WriteLine($"offset {msg.Offset}: {text}");
}

Connect from anywhere

Official client libraries for the languages your team already uses. Client libraries are MIT-licensed — free forever.

.NET
.NET / C#
Full SDK
Go
REST API
TS
TypeScript
gRPC Client
JS
JavaScript
gRPC Client
Python
Preview
R
Rust
Preview
Java
Preview
Browser
REST + gRPC-Web

Free for most teams.
Flat annual fee for the rest.

Free for individuals, education, and companies under $10M annual revenue. $5,000/year flat for larger enterprises — no per-seat, no per-node. Client libraries are always free under MIT.

See full pricing

How IonStream stacks up

Purpose-built for .NET ecosystems with modern primitives and a dramatically simpler operational model.

Feature Kafka Redpanda NATS JetStream IonStream
Runtime JVM C++ Go .NET 10 AOT
External Dependencies ZooKeeper (legacy) ✓ None ✓ None ✓ None
Wire Protocol Custom TCP Kafka Protocol NATS Protocol gRPC / HTTP/2
Consensus KRaft / Raft Raft Raft Raft
Native .NET Client Confluent SDK Kafka-compat ✓ Optimized
Channels API
Browser / gRPC-Web Partial ✓ REST + gRPC-Web
Prometheus / OTel Via plugin ✓ Built-in
Admin UI External (Kafdrop) ✓ Built-in ✓ Built-in ✓ Dashboard
Grafana Dashboards Community ✓ Built-in Community ✓ Included
Full comparison matrix →

Ready to stream?

Single binary. One command. Up and running in under a minute.

Read the Docs Explore Architecture