Skip to content

mqlite v0.1.0 — first release

Choose a tag to compare

@vt128 vt128 released this 20 Jun 11:20
4e919d9

A small, SQLite/Turso-backed message queue with Azure Service Bus–style
semantics
, in a single pure-Go binary (no CGO). Embed it in your Go process like
goqite, or run it as an HTTP broker — the same engine.

Highlights

  • Peek-Lock delivery with four-way settle (Complete / Abandon / Reject /
    Defer), Renew, fencing tokens, and delivery_count → dead-letter queue.
  • Dedup (idempotent send), idempotent receive/settle (attempt-id), and
    scheduled / deferred messages.
  • Ordering modes: standard (per-GroupID FIFO with cross-group parallelism),
    group_fifo, and strict_fifo.
  • Topics + subscriptions with subject-prefix filters; DLQ redrive /
    purge.
  • One engine, two front-ends: run it embedded (in-process, with same-DB
    transactional enqueue) or as a broker (JSON-over-HTTP + Bearer auth). Storage
    is local SQLite or remote Turso/libSQL, selected by a connection string.

Quality

Verified on this release's runtime (commit d0d89da; the tag adds only
documentation on top):

  • CI green: test matrix on macOS / Linux / Windows × Go 1.21.x + stable, -race,
    golangci-lint (0 issues), per-package coverage gate (~72%), Docker build +
    /healthz smoke.
  • Black-box E2E (curl + Python + Go SDK): 108 / 108.
  • Real Turso/libSQL nightly: green — TestTursoIntegration,
    TestTursoExtended, TestTursoConcurrent (concurrent dedup + exclusive claim).
  • Release build environment golang:1.25-alpine (Go 1.25.11): govulncheck
    reports 0 vulnerabilities affecting the code.

Install / run

go get github.com/mqlitehq/mqlite          # embed the SDK (requires Go >= 1.21)

# or run the broker:
docker build --platform linux/amd64 --pull -t mqlite:0.1.0 .
docker run  --platform linux/amd64 -p 8080:8080 -e MQLITE_TOKENS=mqk_dev mqlite:0.1.0

Compatibility

The library requires Go 1.21+ to import (maximum embedding compatibility).
Release binaries are compiled with Go 1.25.11, carrying the latest Go standard-
library security fixes.

Honest notes

  • Delivery is at-least-once, not exactly-once — handlers must be idempotent.
  • Under synchronous=NORMAL (the default) a sudden power loss can drop the last few
    not-yet-checkpointed messages; choose FULL if that window is unacceptable.
  • Embedded mode is single-process, single-writer; for multiple processes or
    hosts, run the broker (or point it at Turso).

Scope

This release is the core library + broker (mqlitehq/mqlite). The public
documentation site is maintained separately and is not part of this tag.