tpt-synapse

Rust

Unified Data Fabric broker that natively speaks MQTT, Kafka, AMQP, and Redis (RESP) wire protocols over one shared storage and routing core — a drop-in replacement for Mosquitto, Kafka, RabbitMQ, and Redis.

0 stars0 forks0 watchers
amqpdistributed-systemskafkamessage-brokermqttpub-subrabbitmqredisruststreaming

Languages

Rust97.4%Go2.0%Shell0.3%Dockerfile0.1%PowerShell0.1%
README

tpt-synapse

Unified Data Fabric: a single broker that natively speaks MQTT, Kafka, AMQP, and Redis (RESP) wire protocols over one shared storage and routing core, so it can be a drop-in replacement for Mosquitto, Kafka, RabbitMQ, and Redis.

The full design rationale and architecture live in spec.txt — read that first. Implementation progress against its roadmap is tracked in TODO.md. SPEC.md is a separate, unrelated document (the .tptmq IoT telemetry frame format); see the Design Reference Notes at the bottom of TODO.md for how it informs the (non-blocking) native protocol track.

Layout

core/            Rust: unified storage engine (Log, Queue, Map primitives)
routing/         Rust: Unified Routing Engine (Topic/Stream/Graph routers, Rule Engine)
adapters/        Rust: one crate per wire protocol (mqtt, kafka, amqp, resp)
  <adapter>/fuzz/   cargo-fuzz target for that adapter's frame parser
conformance/     Rust + out-of-process suites verifying wire compatibility
                 against real client libraries (see conformance/README.md)
controlplane/    Go: cluster control plane (Raft-based HA, Phase 4)
cmd/synapsectl/  Go: CLI
scripts/         Build/test/CI entry points (see below)

Building

Rust workspace:

cargo build --workspace
cargo test --workspace

Go module:

go build ./...
go test ./...

Or both at once via the CI script (see below).

CI

This repo intentionally does not use GitHub Actions/workflows. scripts/ci.sh (bash) / scripts/ci.ps1 (PowerShell) build and test both toolchains and run the TODO-drift check; wire either into whatever CI runner you use. A local pre-push hook is provided in .githooks/ — enable it with:

git config core.hooksPath .githooks
tpt-synapse — Open Source | TPT Solutions