rabbitmq & kafka killer 🐰💥🔫
To run you can use GitPod (super fast), devcontainers (local docker + vscode) or just linux box
- Clone the repo
- Open in vscode
- Run
docker compose up -dto start logs/traces collector UI: http://localhost:16686 - Build & run in the terminal
# to run the server
cargo watch -x 'run --bin server' --ignore protos/
# to have watch on tests
cargo watch -x 'test' --ignore protos/# pull the published image
docker pull ghcr.io/toumash/ruuster:latest
# run the server container
docker run --rm -p 50051:50051 -e RUUSTER_SERVER_ADDR=0.0.0.0:50051 ghcr.io/toumash/ruuster:latest
# run a demo client against the container
cargo run --bin docker_demo -- --server-addr "http://127.0.0.1:50051"| Crate | Description |
|---|---|
| queues | core ruuster functionalities (queues, acks) |
| internals | declarations of internal types used by ruuster |
| exchanges | library defining exchangers behavior / logic of message trasport |
| protos | library with definitions of gRPC services (proto files) |
| ruuster-qrpc | library containing implementation of gRPC server |
| utils | library with common utilities |
| apps | crate containing binaries built using our project |
To develop on NixOs you need to have direnv installed and enabled.
Then just run direnv allow in the project root and it will automatically load the nix shell with all dependencies.
Also in user settings json you need those entries:
"rust-analyzer.rustcSource": "discover",
"rust-analyzer.cargo.allFeatures": true,
"rust-analyzer.checkOnSave.command": "clippy"
In order to use CodeLLDB in VSCode on NixOS, use this configuration for vscode in pkgs:
environment.systemPackages = with pkgs; [
# your other packages
# --- VSCODE FHS WRAPPER ---
(symlinkJoin {
name = "code";
paths = [ vscode.fhs ];
nativeBuildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/code \
--add-flags "--extensions-dir ~/.vscode-fhs-extensions"
'';
})
];