Logan is a high-performance, Kafka-compatible message broker implemented in Rust, focusing on efficiency, reliability, and ease of use.
The project is organized as a Cargo workspace with the following crates:
logan-bin: Binary entry point for the brokerlogan-protocol: Core protocol definitions and serialization/deserializationlogan-storage: Persistent storage engine for messages and metadatalogan-server: Network server implementationlogan-client: Client library for interacting with the brokerlogan-common: Shared utilities and types
- Rust (latest stable version)
- Cargo
# Build all crates
cargo build --release
# Build and run the broker
cargo run -p logan-binTo add a new crate to the workspace:
- Create a new directory in the workspace root
- Initialize a new library crate:
cargo init --lib - Add the crate to the workspace members in
Cargo.toml
# Run all tests
cargo test --workspace
# Test a specific crate
cargo test -p logan-protocolContributions are NOT welcome at this point! We'll open up contributions once we have reached a certain milestone.
This project is licensed under the MIT License - see the LICENSE file for details.