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.

The rlg ecosystem

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.

Install one, install all

[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

Tools

The MCP server crate, rlg-mcp, exposes rlg log streams to LLM agents as three MCP tools over the stdio transport:

  • tail_logpath, optional n (default 100) → last n parseable records, rendered in Logfmt.
  • filter_logpath, optional min_level / component / format → records matching every supplied filter, in the chosen LogFormat.
  • summarize_errorspath → JSON map of component → error_count for ERROR-and-above records.

Workspace layout

.
├── 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

Quick links

License

Dual-licensed under Apache 2.0 or MIT, at your option.