LLMTrace is an open-source LLM security and observability proxy built in Rust. We welcome contributions of all kinds — bug fixes, new detectors, documentation improvements, and performance optimizations.
- Rust 1.75+ (stable toolchain)
- Docker (for storage services: ClickHouse, PostgreSQL, Redis)
- Python 3.10+ (for benchmark scripts only)
# Build all crates
cargo build --workspace
# Build release with ML security models
cargo build --release --features ml
# Build proxy only
cargo build -p llmtrace --release --features ml# Run all tests
cargo test --workspace
# Run tests for a specific crate
cargo test -p llmtrace-security
cargo test -p llmtraceAll code must pass formatting and linting checks before merge:
# Format
cargo fmt --all
# Lint (must pass with zero warnings)
cargo clippy --all-targets -- -D warningsFollow conventional commits:
type(scope): description
Types: feat, fix, refactor, docs, test, chore, perf
Examples:
feat(security): add PIGuard detector to ensemblefix(proxy): handle chunked transfer encoding in streamingdocs(readme): update API endpoint pathstest(benchmarks): add TensorTrust attack samples
- Branch from
main— use a descriptive branch name (e.g.,feat/piguard-detector) - Keep PRs focused — one logical change per PR
- CI must be green — formatting, linting, and all tests must pass
- Review required — at least one maintainer approval before merge
- Rebase preferred — keep a clean commit history
| Label | Description |
|---|---|
bug |
Something isn't working |
enhancement |
New feature or improvement |
good-first-issue |
Good for newcomers |
documentation |
Docs improvements |
security |
Security-related changes |
performance |
Performance improvements |
| Crate | Responsibility |
|---|---|
llmtrace-core |
Shared types, traits, and configuration |
llmtrace |
HTTP proxy server, request/response handling, streaming (crates.io) |
llmtrace-security |
Security analysis engine: regex patterns, DeBERTa ML, InjecGuard, PIGuard, ensemble voting |
llmtrace-storage |
Storage backends: SQLite, PostgreSQL, ClickHouse, Redis |
llmtrace-sdk |
Rust SDK for programmatic access |
llmtrace-python |
Python SDK via PyO3 (PyPI: llmtracing) |
The security engine uses a multi-detector majority voting approach:
- Regex patterns — fast pattern matching for known injection signatures
- DeBERTa ML — transformer-based prompt injection classifier
- InjecGuard — specialized injection detection model
- PIGuard — prompt injection guard model
- Ensemble voting — majority vote across detectors determines final classification
- Bug reports — Open an issue
- Questions — GitHub Discussions
- Security issues — Email epappas@evalonlabs.com directly (do not open a public issue)