Are you the author? Sign in to claim
Near-lock-free structured logging for Rust. 10-crate workspace: MCP server (Claude/Cursor/mcp.run), OTLP HTTP+gRPC expor
Near-lock-free structured logging for Rust, plus an ecosystem of companion crates: CLI tooling, MCP server, OTLP exporter, tower middleware, WebAssembly bindings, PII redaction, test utilities, and aggregation reports.
This is the Cargo workspace root. The library lives at
crates/rlg. Ten companion crates ship from this
workspace, all at lockstep version 0.0.11.
| Crate | What it does | Use case |
|---|---|---|
rlg | Near-lock-free structured logging engine. 65k-slot ring buffer, deferred formatting, 14 output formats, native OS sinks (os_log via syslog(3), journald). | Embed structured logging in any Rust binary or library. |
rlg-cli | rlg binary — jq for structured logs. Tail, filter, convert across all 14 formats. | Pipe my-service | rlg --min-level error --format ecs from the shell. |
rlg-mcp | Model Context Protocol server exposing rlg streams as tools to LLM agents. | Claude Desktop, Cursor, mcp.run agents reading your logs. |
rlg-otlp | OpenTelemetry network exporter (OTLP/HTTP JSON). | Ship records to Honeycomb, Datadog, Tempo, Jaeger, otelcol. |
rlg-tower | tower::Layer emitting per-request structured access logs. | axum, tonic, hyper, lambda_runtime — any tower::Service. |
rlg-wasm | wasm-bindgen wrapper for browser / Deno / Cloudflare Workers / Bun, plus a WASI 0.2 component interface for wasmtime hosts. | Structured logging from JS or WASI 0.2 components. |
rlg-redact | PII / secret redaction between Log::fire() and the sink. Aho-Corasick fused alternation regex. | Compliance, GDPR, audit-trail safety. Built-in patterns for cards, JWTs, bearers, emails, IPs, AWS keys. |
rlg-test | Test utilities — capture rlg records in a #[test] scope and assert on them with assert_logged!. | Downstream library tests verifying their structured log output. |
rlg-report | Log digest / analytics: count by level, top components, top errors, latency percentiles. CLI + library mode. | Operational dashboards, daily error reports, oncall triage. |
rlg-ebpf | Enricher trait + ProcessEnricher (portable) + EbpfEnricher scaffold (Linux, behind the ebpf feature) for automatic PID / process-name attributes. | Automatic host-level context on every record without app code changes. |
xtask (internal, unpublished) | cargo xtask check-all / coverage / audit / doc / examples / bench / release. | Maintainer automation. |
[dependencies]
rlg = "0.0.11"
rlg-otlp = "0.0.11" # ship to an OTLP collector
rlg-tower = "0.0.11" # HTTP middleware
rlg-redact = "0.0.11" # PII redaction
[dev-dependencies]
rlg-test = "0.0.11" # assertions in your tests
CLI binaries:
cargo install rlg-cli # the `rlg` binary
cargo install rlg-mcp # the `rlg-mcp` MCP server
cargo install rlg-report # the `rlg-report` digest tool
The MCP server crate, rlg-mcp, exposes rlg
log streams to LLM agents as three MCP tools over the stdio transport:
tail_log — path, optional n (default 100) → last n parseable records, rendered in Logfmt.filter_log — path, optional min_level / component / format → records matching every supplied filter, in the chosen LogFormat.summarize_errors — path → JSON map of component → error_count for ERROR-and-above records..
├── Cargo.toml # workspace manifest (profiles, members)
├── README.md # ← you are here
├── CHANGELOG.md / CONTRIBUTING.md / SECURITY.md
├── LICENSE-{APACHE,MIT}
├── crates/
│ ├── rlg/ # core library
│ ├── rlg-cli/ # `rlg` binary + filter/render lib
│ ├── rlg-mcp/ # MCP server
│ ├── rlg-otlp/ # OTLP/HTTP exporter
│ ├── rlg-tower/ # tower::Layer
│ ├── rlg-wasm/ # wasm-bindgen + WASI 0.2 component
│ ├── rlg-redact/ # PII / secret scrubber (Aho-Corasick)
│ ├── rlg-test/ # test utilities
│ ├── rlg-report/ # log digest binary + lib
│ ├── rlg-ebpf/ # Enricher trait + eBPF (Linux) scaffold
│ └── xtask/ # internal automation (publish = false)
└── .github/
└── workflows/
├── ci.yml # delegates to sebastienrousseau/pipelines
└── release.yml # workspace-aware crates.io publisher
crates/rlg/README.md · docs.rs/rlgCONTRIBUTING.mdSECURITY.mdCHANGELOG.mdDual-licensed under Apache 2.0 or MIT, at your option.
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
Google's universal MCP server supporting PostgreSQL, MySQL, MongoDB, Redis, and 10+ databases
Official GitHub integration for repos, issues, PRs, and CI/CD workflows