liftbridge-io/liftbridge

Kafka-style message streaming in Go. Built on NATS. Single binary, no JVM, no ZooKeeper.

Go

2,804

1,331 commits

updated Oct 2, 2026

See the code

README

Liftbridge Logo

Build License ReportCard Go Version

Liftbridge provides lightweight, fault-tolerant message streams by implementing a durable, replicated, and scalable message log. The vision for Liftbridge is to deliver a "Kafka-lite" solution designed with the Go community first in mind. Unlike Kafka, which is built on the JVM and whose canonical client library is Java (or the C-based librdkafka), Liftbridge and its canonical client, go-liftbridge, are implemented in Go. The ultimate goal of Liftbridge is to provide a lightweight message-streaming solution with a focus on simplicity and usability. Use it as a simpler and lighter alternative to systems like Kafka and Pulsar or to add streaming semantics to an existing NATS deployment.

See the introduction post on Liftbridge and this post for more context and some of the inspiration behind it.

Maintainers

This project is maintained by Basekick Labs, creators of Arc.

Requirements

  • Go 1.25.6+
  • NATS Server v2.10.0+

Documentation

Performance

Liftbridge delivers high-throughput message ingestion with durable storage. The following benchmarks were run on a single node with replication factor 1:

ConfigurationThroughputLatency (P99)
1 publisher, synchronous~30K msgs/sec306µs
1 publisher, pub-batch=100~139K msgs/sec1.0ms
4 publishers, pub-batch=100~241K msgs/sec2.0ms
256 publishers, synchronous~200K msgs/sec1.4ms

For comparison, NATS JetStream achieves ~220K msgs/sec with similar settings (pubbatch=100, file storage, RF=1).

Running Benchmarks

# Producer benchmark with async batching (recommended for high throughput)
go run ./bench/producer \
  --servers localhost:9292 \
  --messages 100000 \
  --message-size 256 \
  --concurrent 4 \
  --pub-batch 100 \
  --ack-policy leader \
  --create-stream

# Consumer benchmark
go run ./bench/consumer \
  --servers localhost:9292 \
  --stream bench-stream \
  --expected 100000

Community

cloud-native
distributed-systems
go
golang
grpc
liftbridge
message-queue
messaging
nats
pubsub
streaming

liftbridge-io/liftbridge

Kafka-style message streaming in Go. Built on NATS. Single binary, no JVM, no ZooKeeper.

Go

2,804

1,331 commits

updated Oct 2, 2026

See the code

README

Liftbridge Logo

Build License ReportCard Go Version

Liftbridge provides lightweight, fault-tolerant message streams by implementing a durable, replicated, and scalable message log. The vision for Liftbridge is to deliver a "Kafka-lite" solution designed with the Go community first in mind. Unlike Kafka, which is built on the JVM and whose canonical client library is Java (or the C-based librdkafka), Liftbridge and its canonical client, go-liftbridge, are implemented in Go. The ultimate goal of Liftbridge is to provide a lightweight message-streaming solution with a focus on simplicity and usability. Use it as a simpler and lighter alternative to systems like Kafka and Pulsar or to add streaming semantics to an existing NATS deployment.

See the introduction post on Liftbridge and this post for more context and some of the inspiration behind it.

Maintainers

This project is maintained by Basekick Labs, creators of Arc.

Requirements

  • Go 1.25.6+
  • NATS Server v2.10.0+

Documentation

Performance

Liftbridge delivers high-throughput message ingestion with durable storage. The following benchmarks were run on a single node with replication factor 1:

ConfigurationThroughputLatency (P99)
1 publisher, synchronous~30K msgs/sec306µs
1 publisher, pub-batch=100~139K msgs/sec1.0ms
4 publishers, pub-batch=100~241K msgs/sec2.0ms
256 publishers, synchronous~200K msgs/sec1.4ms

For comparison, NATS JetStream achieves ~220K msgs/sec with similar settings (pubbatch=100, file storage, RF=1).

Running Benchmarks

# Producer benchmark with async batching (recommended for high throughput)
go run ./bench/producer \
  --servers localhost:9292 \
  --messages 100000 \
  --message-size 256 \
  --concurrent 4 \
  --pub-batch 100 \
  --ack-policy leader \
  --create-stream

# Consumer benchmark
go run ./bench/consumer \
  --servers localhost:9292 \
  --stream bench-stream \
  --expected 100000

Community

cloud-native
distributed-systems
go
golang
grpc
liftbridge
message-queue
messaging
nats
pubsub
streaming

Project health

Overall

3.6/10

Maintained

1/10

Code review

1/10
OpenSSF Scorecard

Latest release

v1.9.0 · Sep 9, 2022

Releases this year

0

Significant stargazers

(top 24 of 39)

Michael Stapelberg

1,737 followers · starred Jul 2019

Márk Sági-Kazár

1,389 followers · starred Sep 2020

Alec Thomas

1,436 followers · starred Aug 2020

Herman Slatman

1,061 followers · starred Dec 2025