| Crates.io | buswatch |
| lib.rs | buswatch |
| version | 0.2.6 |
| created_at | 2025-12-21 20:32:13.067509+00 |
| updated_at | 2025-12-22 17:37:01.440164+00 |
| description | Diagnostic TUI for monitoring Caryatid message bus activity |
| homepage | |
| repository | https://github.com/lowhung/buswatch |
| max_upload_size | |
| id | 1998552 |
| size | 100,179 |
____ ____ ____ _ ____ _____ ____ _
/ _ \/ __\/ _ \/ \ /|/ _ \/__ __\/ _\/ \ /|
| | //| \/|| / \|| | ||| / \| / \ | / | |__||
| |_\\| __/| |-||| |/\||| |-|| | | | \_ | | ||
\____/\_/ \_/ \|\_/ \|\_/ \| \_/ \____/\_/ \|
Buswatch is a collection of crates for monitoring and diagnosing message bus systems. It provides a terminal UI for real-time visualization, an instrumentation SDK for Rust applications, and adapters for popular message brokers.
Whether you're debugging a slow consumer, tracking message flow through your system, or just want visibility into your message bus, buswatch gives you the tools you need.
The repository is organized as a Cargo workspace. Each crate serves a specific purpose and can be used independently or together.
| Crate | Description |
|---|---|
| buswatch-types | Core type definitions and JSON schema for the wire format |
| buswatch-tui | Terminal UI for real-time monitoring and diagnostics |
| Crate | Description |
|---|---|
| buswatch-sdk | Lightweight SDK for instrumenting Rust applications |
| buswatch-adapters | Pre-built collectors for RabbitMQ, Kafka, and NATS |
cargo install buswatch
buswatch -f monitor.json
buswatch --connect localhost:9090
buswatch --subscribe rabbitmq.toml --topic caryatid.monitor.snapshot
┌─────────────────┐ ┌─────────────────┐ ┌──────────────┐
│ Your App │ │ Message Bus │ │ │
│ + buswatch-sdk │────▶│ (RabbitMQ, │◀────│ buswatch │
│ │ │ Kafka, NATS) │ │ TUI │
└─────────────────┘ └─────────────────┘ └──────────────┘
│
▼
┌─────────────────┐
│ buswatch-adapters│
│ (collectors) │
└─────────────────┘
Two ways to get data into buswatch:
buswatch-sdk to your app and emit metricsbuswatch-adapters to collect from your message busAll components communicate using the buswatch snapshot format:
{
"version": { "major": 1, "minor": 0 },
"timestamp_ms": 1703160000000,
"modules": {
"order-processor": {
"reads": {
"orders.new": { "count": 1500, "backlog": 23 }
},
"writes": {
"orders.processed": { "count": 1497 }
}
}
}
}
See buswatch-types for the full schema and serialization options.
Licensed under the Apache License, Version 2.0. See LICENSE for details.