Embeddable, append-only topic log for Go — a single-node, disk-backed queue with per-consumer offsets. Zero external dependencies (Go standard library only). GPL-3.0-or-later.
Highlights
- Sharded, rotating binary log segments with CRC-checked frames; opt-in fixed-width record format (
PayloadWidth) with O(1) cold-start load - Prefix-consistent reads: a record is never visible while an earlier sequence is still buffered, so committing the highest sequence read is always safe;
Durable(topic)marks the permanent-gap boundary - Consumer offset commits with
RegisterConsumerretention protection and observable data loss (TopicStat.Dropped) - Retention by whole-segment deletion, per-topic/global byte caps, or never-expire archival mode (
Retention: -1) - Single-writer safety: exclusive directory lock (linux/darwin) plus a
ReadOnlymode for inspecting a live directory - Flush-failure containment: truncate-before-retry and
MaxBufferBytesbackpressure - Zero-copy
Scan/ScanAll, blockingReadWait, compact binary wire encoding for transport cmd/scribemanagement/inspection CLI (version-stamped viabuild/scribe); examples for direct embedding, HTTP, Unix socket, and MCP
Docs
The internal/mmap package is derived from golang.org/x/exp/mmap and retains its BSD-3-Clause license.