MCPcopy
hub / github.com/liftbridge-io/liftbridge

github.com/liftbridge-io/liftbridge @v26.01.1 sqlite

repository ↗ · DeepWiki ↗ · release v26.01.1 ↗
2,085 symbols 8,086 edges 73 files 918 documented · 44%
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.3+
  • 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:

Configuration Throughput Latency (P99)
1 publisher, synchronous ~30K msgs/sec 306µs
1 publisher, pub-batch=100 ~139K msgs/sec 1.0ms
4 publishers, pub-batch=100 ~241K msgs/sec 2.0ms
256 publishers, synchronous ~200K msgs/sec 1.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

Extension points exported contracts — how you extend this code

Logger (Interface)
Logger interface is used to allow tests to inject custom loggers. [2 implementers]
server/logger/logger.go
MessageReader (Interface)
MessageReader is the interface implemented by both Reader and ReverseReader. It allows reading messages from a CommitLog [2 …
server/commitlog/reader.go
RaftLogListener (Interface)
RaftLogListener is a listener for Raft logs. [1 implementers]
server/server.go
Codec (Interface)
Codec provides the necessary method to safely retrieve secret encryption key to encrypt/decrypt data on server side. [1 …
server/encryption/handler_interface.go
CommitLog (Interface)
CommitLog is the durable write-ahead log interface used to back each stream. [1 implementers]
server/commitlog/interface.go

Core symbols most depended-on inside this repo

Errorf
called by 253
server/logger/logger.go
Close
called by 227
server/commitlog/interface.go
Error
called by 204
server/raft.go
Stop
called by 189
server/server.go
Errorf
called by 137
server/common_test.go
Fatal
called by 96
server/logger/logger.go
CreateStream
called by 92
server/api.go
Publish
called by 71
server/api.go

Shape

Method 1,422
Function 513
Struct 125
Interface 12
TypeAlias 7
FuncType 4
Class 2

Languages

Go99%
TypeScript1%

Modules by API surface

server/protocol/internal.pb.go762 symbols
server/metadata.go91 symbols
server/partition.go82 symbols
server/commitlog/encoder.go57 symbols
server/server_test.go52 symbols
server/server.go44 symbols
server/logger/logger.go42 symbols
server/commitlog/commitlog.go42 symbols
server/api_test.go42 symbols
server/commitlog/segment.go41 symbols
server/api.go39 symbols
server/groups.go37 symbols

Dependencies from manifests, versioned

github.com/HdrHistogram/hdrhistogram-gov1.1.2 · 1×
github.com/antithesishq/antithesis-sdk-gov0.4.3-default-no-op · 1×
github.com/armon/go-metricsv0.4.1 · 1×
github.com/bmatcuk/doublestar/v4v4.6.1 · 1×
github.com/boltdb/boltv1.3.1 · 1×
github.com/casbin/casbin/v2v2.135.0 · 1×
github.com/casbin/govaluatev1.3.0 · 1×
github.com/cpuguy83/go-md2man/v2v2.0.0 · 1×

For agents

$ claude mcp add liftbridge \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact