https://github.com/kuestenlogik/surgewave
Drop-in Kafka replacement on .NET 10 — single binary, no JVM, Kafka-wire-compatible, runtime plugin system.
https://github.com/kuestenlogik/surgewave
broker csharp distributed-systems dotnet event-driven event-streaming high-performance iot kafka kafka-alternative kafka-compatible low-latency message-broker mqtt pubsub realtime redpanda-alternative streaming-platform
Last synced: 24 days ago
JSON representation
Drop-in Kafka replacement on .NET 10 — single binary, no JVM, Kafka-wire-compatible, runtime plugin system.
- Host: GitHub
- URL: https://github.com/kuestenlogik/surgewave
- Owner: Kuestenlogik
- License: apache-2.0
- Created: 2026-05-07T14:21:02.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-05-27T08:42:22.000Z (27 days ago)
- Last Synced: 2026-05-27T10:26:05.960Z (27 days ago)
- Topics: broker, csharp, distributed-systems, dotnet, event-driven, event-streaming, high-performance, iot, kafka, kafka-alternative, kafka-compatible, low-latency, message-broker, mqtt, pubsub, realtime, redpanda-alternative, streaming-platform
- Language: C#
- Homepage: https://surgewave.io/
- Size: 7.97 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: ROADMAP.md
- Notice: NOTICE
- Maintainers: MAINTAINERS.md
- Cla: .github/CLA.md
Awesome Lists containing this project
README
[](https://github.com/Kuestenlogik/Surgewave/actions/workflows/ci.yml)
[](https://dotnet.microsoft.com/)
[](https://kafka.apache.org/)
[](LICENSE)
# Surgewave
**The complete event streaming platform for .NET 10.**
Surgewave is a complete event streaming platform built end-to-end on .NET 10 — native low-latency transport, signed plugin marketplace, built-in AI pipeline nodes, embedded broker for tests and edge. Full Kafka 4.0 wire compatibility ships in the box, so any existing Kafka client (Confluent.Kafka, librdkafka, kafka-go, …) connects on day one. Adopt Surgewave as your streaming platform; keep your existing Kafka producers and consumers working unchanged.
## What Surgewave Does
Surgewave connects your services, devices, and data in real time. It distributes events reliably, processes streams on the fly, and stores them durably.
- Decouple microservices with pub/sub and request/reply
- Ingest IoT data from edge devices to the cloud
- Replicate database changes with built-in Change Data Capture (CDC)
- Transform, filter, join, and aggregate streams in real time. Use a fluent .NET API or SQL.
- Store events with configurable retention. Choose the storage engine for your use case: file-based, in-memory, shared-memory, database, or bring your own.
- Implement CQRS and event sourcing with ordered, replayable event logs
- Built-in dashboards and materialized views. Integrate into your existing monitoring via OpenTelemetry (OTEL).
## Why Surgewave?
**Easy to adopt**
- Wire-compatible with Kafka 4.0. Run alongside Kafka or replace it entirely.
- Your existing clients, tools, and monitoring keep working.
- Just swap the broker and keep your Kafka clients. Or use Surgewave's .NET client, which switches protocols at runtime.
- Migrate service by service, in either direction.
**Easy to operate**
- Pure .NET, no JVM, no ZooKeeper. One technology stack, one team.
- Run embedded in your app, as a standalone broker, or scaled out across a cluster.
- Your .NET team can build, deploy, and troubleshoot everything with the skills they already have.
**Built for performance**
- Designed from scratch on .NET 10 with zero-copy and io_uring.
- Lower latency, higher throughput, less hardware.
**Built for extensibility**
- Add storage engines, protocol adapters, or connectors as plugins.
- Package as `.swpkg` files, install at runtime, no fork required.
## Quick Start
**Start the broker:**
```bash
docker run -p 9092:9092 -p 5050:5050 ghcr.io/kuestenlogik/surgewave
```
Open the **Control UI** at [localhost:5050](http://localhost:5050). See the [Control UI guide](docs/quickstart/) for a walkthrough.
> No Docker? See [Building from Source](#building-from-source) below.
**Connect with any Kafka client:**
```csharp
var config = new ProducerConfig { BootstrapServers = "localhost:9092" };
```
## Learn More
| | |
|---|---|
| [Getting Started](docs/quickstart/) | Install, configure, and run your first producer/consumer |
| [.NET Client](docs/clients/dotnet.md) | Producer, consumer, and admin APIs with Source Link debugging |
| [Kafka Conformance](CONFORMANCE.md) | Per-RPC and per-KIP status table — what's wired, stubbed, and out of scope |
| [Schema Registry](docs/features/schema-registry.md) | 12 serialization formats with compatibility checking |
| [Stream Processing](docs/features/streams.md) | Real-time transforms, joins, aggregations, and SQL |
| [Plugin Development](docs/features/plugin-development.md) | Build and package your own storage engines, connectors, or protocol adapters |
| [CLI Reference](docs/tools/cli-reference.md) | Manage topics, groups, schemas, and plugins from the command line |
## Building from Source
Requires [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0).
```bash
git clone https://github.com/Kuestenlogik/Surgewave.git
cd Surgewave
dotnet build Kuestenlogik.Surgewave.slnx -c Release
dotnet run --project src/Kuestenlogik.Surgewave.Broker
```
For the full step-by-step guide — build, publish, and run in all variants (development, self-contained executables, Docker containers) — see [docs/setup/building.md](docs/setup/building.md).
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md). All contributions require signing a [CLA](.github/CLA.md).
## License
[Apache License 2.0](LICENSE). Free for any use, including commercial. Premium extensions (Surgewave.Ai, Surgewave.Replication, Surgewave.Governance, Surgewave.Functions, Surgewave.Fleet, Surgewave.Edge and Surgewave.Storage.Tiering.* among others) live in separate repositories under the Business Source License 1.1. For commercial licensing of those extensions: [licensing@kuestenlogik.com](mailto:licensing@kuestenlogik.com).