Official Rust SDK for Treblle. Treblle makes it super easy to understand what's going on with your APIs and the apps that use them.
graph TD
A[treblle-core] --> B[treblle-axum]
A --> C[treblle-actix]
A --> D[treblle-rocket]
A --> E[treblle-traefik-wasm]
treblle-core
: Core functionality and shared componentstreblle-axum
: Integration for the Axum web frameworktreblle-actix
: Integration for the Actix-web frameworktreblle-rocket
: Integration for the Rocket web frameworktreblle-traefik-wasm
: WASM plugin for Traefik
Each middleware must:
- Intercept HTTP traffic non-intrusively
- Process only
application/json
content on non-ignored routes - Extract and mask sensitive data before sending to Treblle API
- Send data to Treblle asynchronously (fire-and-forget)
- Never modify original request/response data
- Handle errors gracefully without impacting main flow
- Rust 1.82+ (MSRV)
- Docker (for integration tests)
- Make (optional for DX, but recommended)
Build all packages
cargo build
Build specific package
cargo build -p treblle-core
Run all tests
make test
Run specific test suite
make test-core
make test-axum
make test-actix
make test-rocket
make test-wasm
Run monitoring & metrics infrastructure first
cd tests
make monitoring
Run specific test suite
cd tests
make test-core
make test-axum
make test-actix
make test-rocket
make test-wasm
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Run
cargo fmt
before committing - Run
cargo clippy
to catch common mistakes and improve code quality - Add tests for new features
- Update documentation when changing public APIs