{"id":47606325,"url":"https://github.com/paiml/renacer","last_synced_at":"2026-04-01T19:25:03.869Z","repository":{"id":324699939,"uuid":"1097682610","full_name":"paiml/renacer","owner":"paiml","description":"Deep Inspection Strace in Rust that looks inside of Rust code, binaries and WASM","archived":false,"fork":false,"pushed_at":"2026-03-27T04:55:51.000Z","size":8393,"stargazers_count":1,"open_issues_count":8,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-27T17:05:18.032Z","etag":null,"topics":["golden","logging","observability","open","open-telemetry","rust","tracing"],"latest_commit_sha":null,"homepage":"https://paiml.github.io/renacer/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paiml.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"docs/roadmaps/roadmap.yaml","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-16T16:35:25.000Z","updated_at":"2026-03-26T15:39:08.000Z","dependencies_parsed_at":"2026-01-02T04:03:14.578Z","dependency_job_id":null,"html_url":"https://github.com/paiml/renacer","commit_stats":null,"previous_names":["paiml/renacer"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/paiml/renacer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paiml%2Frenacer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paiml%2Frenacer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paiml%2Frenacer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paiml%2Frenacer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paiml","download_url":"https://codeload.github.com/paiml/renacer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paiml%2Frenacer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31291132,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golden","logging","observability","open","open-telemetry","rust","tracing"],"created_at":"2026-04-01T19:25:03.034Z","updated_at":"2026-04-01T19:25:03.863Z","avatar_url":"https://github.com/paiml.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\".github/renacer-hero.svg\" alt=\"renacer\" width=\"800\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003erenacer\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003ePure Rust system call tracer with source-aware correlation for Rust binaries\u003c/b\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/paiml/renacer/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/paiml/renacer/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\u003c/a\u003e\n[![Documentation](https://docs.rs/renacer/badge.svg)](https://docs.rs/renacer)\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n---\n\n## Overview\n\nRenacer (Spanish: \"to be reborn\") is a next-generation binary inspection and tracing framework built following Toyota Way principles and EXTREME TDD methodology.\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Project Status](#project-status)\n- [Features](#features)\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [Usage](#usage)\n- [Examples](#examples)\n- [Performance](#performance)\n- [Quality Standards](#quality-standards)\n- [Development](#development)\n- [Architecture](#architecture)\n- [Roadmap](#roadmap)\n- [License](#license)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n- [Credits](#credits)\n\n## Project Status\n\n| Metric | Value |\n|--------|-------|\n| **Current Version** | 0.10.0 |\n| **Status** | Production-Ready |\n| **Test Coverage** | 1693+ tests (all passing), 92.84% line coverage |\n| **TDG Score** | 95.1/100 (A+ grade) |\n| **Performance** | \u003c5% overhead (basic), \u003c10% overhead (full stack) |\n| **Specification** | [deep-strace-rust-wasm-binary-spec.md](docs/specifications/deep-strace-rust-wasm-binary-spec.md) |\n\n## Features\n\n### Core Tracing (Sprint 1-10, 15-18)\n- ✅ **Full syscall tracing** - All 335 Linux syscalls supported\n- ✅ **DWARF debug info** - Source file and line number correlation\n- ✅ **Statistics mode** (-c flag) - Call counts, error rates, timing\n- ✅ **JSON/CSV output** (--format json/csv) - Machine-readable trace export\n- ✅ **Advanced filtering** (-e trace=SPEC) - File, network, process, memory classes\n- ✅ **Negation operator** (Sprint 15) - Exclude syscalls with ! prefix\n- ✅ **Regex patterns** (Sprint 16) - Pattern matching with /regex/ syntax\n- ✅ **PID attachment** (-p PID) - Attach to running processes\n- ✅ **Timing mode** (-T) - Microsecond-precision syscall durations\n- ✅ **Multi-process tracing** (Sprint 18) - Follow fork/vfork/clone with -f flag\n\n### Function Profiling (Sprint 13-14)\n- ✅ **I/O Bottleneck Detection** - Automatic detection of slow I/O (\u003e1ms)\n- ✅ **Call Graph Tracking** - Parent→child function relationships via stack unwinding\n- ✅ **Hot Path Analysis** - Top 10 most expensive functions with percentage breakdown\n- ✅ **Flamegraph Export** - Compatible with flamegraph.pl, inferno, speedscope\n\n### Statistical Analysis \u0026 Anomaly Detection (Sprint 19-20) 🆕\n- ✅ **SIMD-Accelerated Statistics** (Sprint 19) - Trueno Vector operations for 3-10x faster computations\n- ✅ **Percentile Analysis** (Sprint 19) - P50, P75, P90, P95, P99 latency percentiles via `--stats-extended`\n- ✅ **Post-Hoc Anomaly Detection** (Sprint 19) - Z-score based outlier identification with configurable threshold\n- ✅ **Real-Time Anomaly Detection** (Sprint 20) - Live monitoring with sliding window baselines\n- ✅ **Per-Syscall Baselines** (Sprint 20) - Independent sliding windows for each syscall type\n- ✅ **Severity Classification** (Sprint 20) - Low (3-4σ), Medium (4-5σ), High (\u003e5σ) anomaly levels\n- ✅ **Anomaly Summary Reports** (Sprint 20) - Detailed reports with severity distribution and top anomalies\n\n### HPU Acceleration (Sprint 21)\n- ✅ **Correlation Matrix Analysis** - Compute syscall pattern correlations\n- ✅ **K-means Clustering** - Group syscalls into clusters for hotspot identification\n- ✅ **Adaptive Backend** - Automatic GPU/CPU backend selection\n- ✅ **CPU Fallback** - Force CPU-only processing with `--hpu-cpu-only`\n- ✅ **Zero Overhead** - No performance impact when disabled (opt-in via `--hpu-analysis`)\n\n### HTML Output Format (Sprint 22)\n- ✅ **Interactive HTML Reports** - Rich visual syscall trace reports\n- ✅ **Statistics Integration** - Combined with -c mode for visual statistics\n- ✅ **Source Correlation** - Display source locations in HTML tables\n- ✅ **Export Format** - Generate shareable HTML files (`--format html`)\n\n### ML Anomaly Detection (Sprint 23) 🆕\n- ✅ **KMeans Clustering** - Group syscalls by latency patterns using Aprender ML library\n- ✅ **Silhouette Score** - Measure clustering quality (-1 to 1, higher = better separation)\n- ✅ **Cluster Analysis** - Identify high-latency outlier clusters automatically\n- ✅ **ML vs Z-Score Comparison** - Compare ML-based detection with statistical methods\n- ✅ **Configurable Clusters** - Adjust cluster count via `--ml-clusters N` (default: 3, min: 2)\n- ✅ **JSON Integration** - ML analysis results included in JSON output\n- ✅ **Zero Overhead** - No impact when disabled (opt-in via `--ml-anomaly`)\n\n### Transpiler Source Mapping (Sprint 24-28)\n- ✅ **Multi-Language Support** - Parse source maps from multiple transpilers:\n  - Python→Rust (Depyler)\n  - C→Rust (Decy)\n  - TypeScript→Rust\n  - Any other source language\n- ✅ **JSON Source Map Parsing** - Parse transpiler source maps with version validation\n- ✅ **Line Number Mapping** - Map Rust line numbers back to original source language\n- ✅ **Function Name Mapping** - Translate Rust function names to original function/descriptions\n- ✅ **CLI Integration** - Load source maps via `--transpiler-map FILE.json`\n- ✅ **Error Handling** - Graceful handling of invalid JSON, missing files, unsupported versions\n- ✅ **Full Feature Integration** - Works with --function-time, --rewrite-stacktrace, --rewrite-errors\n\n### Chaos Engineering + Fuzz Testing (Sprint 29) 🆕\n- ✅ **ChaosConfig Builder** - Aprender-style builder pattern for chaos configuration\n  - Chainable API: `ChaosConfig::new().with_memory_limit().with_cpu_limit().build()`\n  - Presets: `ChaosConfig::gentle()` and `ChaosConfig::aggressive()`\n  - Configurable: memory limits, CPU limits, timeouts, signal injection\n- ✅ **Tiered TDD Workflow** - Trueno-style Makefile targets for rapid development\n  - `make test-tier1` - Fast tests (\u003c5s): unit + property tests\n  - `make test-tier2` - Medium tests (\u003c30s): integration tests\n  - `make test-tier3` - Slow tests (\u003c5m): fuzz + mutation tests\n- ✅ **Fuzz Testing Infrastructure** - cargo-fuzz integration\n  - Filter parser fuzzing: `fuzz/fuzz_targets/filter_parser.rs`\n  - Discovers edge cases in syscall filter expression parsing\n  - Integrated into tier3 testing workflow\n- ✅ **Cargo Features** - Progressive chaos capabilities\n  - `chaos-basic` - Resource limits, signal injection\n  - `chaos-network` - Network/IO chaos (latency, packet loss)\n  - `chaos-byzantine` - Syscall return modification\n  - `chaos-full` - Complete chaos suite with loom + arbitrary\n  - `fuzz` - Fuzz testing support\n- ✅ **Property-Based Tests** - 7 comprehensive proptest tests for chaos module\n\n### OpenTelemetry OTLP Integration (Sprint 30) 🆕\n- ✅ **Distributed Tracing** - Export syscall traces as OpenTelemetry spans\n- ✅ **OTLP Protocol** - Support for gRPC (port 4317) and HTTP (port 4318) endpoints\n- ✅ **Span Hierarchy** - Root span per process + child spans per syscall\n- ✅ **Rich Attributes** - Syscall name, result, duration, source location in span attributes\n- ✅ **Error Tracking** - Failed syscalls (result \u003c 0) marked with ERROR status\n- ✅ **Observability Backends** - Works with Jaeger, Grafana Tempo, Elastic APM, Honeycomb\n- ✅ **Async Export** - Non-blocking span export with Tokio runtime\n- ✅ **Docker Examples** - Ready-to-use docker-compose files for Jaeger and Tempo\n- ✅ **Zero Overhead** - No impact when disabled (opt-in via `--otlp-endpoint`)\n- ✅ **Full Integration** - Compatible with all Renacer features (filtering, timing, source correlation)\n\n### Ruchy Runtime Integration (Sprint 31) 🆕\n- ✅ **Unified Tracing** - Link OTLP traces with transpiler decision traces\n- ✅ **Decision Span Events** - Export transpiler decisions as OpenTelemetry span events\n- ✅ **End-to-End Observability** - Single trace view of both syscalls and decisions\n- ✅ **Rich Event Attributes** - Category, name, result, timestamp for each decision\n- ✅ **Cross-Layer Correlation** - Connect high-level transpiler choices to low-level syscalls\n- ✅ **Unified Timeline** - See decisions and syscalls on the same timeline in Jaeger/Tempo\n- ✅ **Backward Compatible** - Works with or without OTLP, works with or without decisions\n- ✅ **Full Integration** - Compatible with source maps, filtering, timing\n- ✅ **Performance Analysis** - Correlate slow syscalls with transpiler decisions\n- ✅ **Debugging Aid** - Understand which transpiler decisions led to runtime behavior\n\n### Block-Level Compute Tracing (Sprint 32) 🆕\n- ✅ **Compute Block Spans** - Trace statistical computation blocks (Trueno SIMD operations)\n- ✅ **Adaptive Sampling** - Smart threshold-based sampling (default: trace blocks ≥100μs)\n- ✅ **Custom Thresholds** - Configurable sampling via `--trace-compute-threshold N`\n- ✅ **Debug Mode** - Trace all compute blocks with `--trace-compute-all` (bypass sampling)\n- ✅ **Rich Metrics** - Block name, duration, element count, operation type in span attributes\n- ✅ **Performance Insights** - Identify expensive statistical computations in distributed traces\n- ✅ **Zero Overhead** - No impact when disabled (opt-in via `--trace-compute`)\n- ✅ **Full Integration** - Compatible with OTLP export, transpiler decisions, source correlation\n\n### W3C Trace Context Propagation (Sprint 33)\n- ✅ **Distributed Tracing** - Propagate trace context across process boundaries\n- ✅ **W3C Standard** - Full W3C Trace Context specification compliance (traceparent format)\n- ✅ **Context Injection** - Explicit context via `--trace-parent` CLI flag\n- ✅ **Environment Detection** - Auto-detect `TRACEPARENT` environment variable\n- ✅ **Parent-Child Relationships** - Renacer spans correctly reference upstream trace IDs\n- ✅ **Cross-Service Correlation** - Link Renacer traces to broader distributed trace graphs\n- ✅ **Trace ID Preservation** - Maintain trace continuity across service boundaries\n- ✅ **Backward Compatible** - Works with or without trace context (auto-generates if absent)\n\n### Experiment Tracking (REN-001) 🆕\n- ✅ **SpanType::Experiment** - Specialized span type for ML experiment tracking\n- ✅ **ExperimentMetadata** - Structured metadata (model_name, epoch, step, loss, metrics)\n- ✅ **Golden Trace Comparison** - Compare traces for behavioral equivalence\n- ✅ **EquivalenceScore** - Syscall match, timing variance, semantic equivalence metrics\n- ✅ **LCS-Based Matching** - Longest common subsequence algorithm for syscall alignment\n- ✅ **entrenar Integration** - Cross-project support for ML experiment tracking (ENT-EPIC-001)\n\n### Process-Level Tracing (Sprint 59 - SPEC-057)\n- ✅ **Deep Process Tracing** - ptrace-based syscall collection for ptop integration\n- ✅ **Syscall Categories** - Breakdown into mmap, futex, ioctl, read, write, other, compute\n- ✅ **Z-Score Anomaly Detection** - Shewhart statistical process control\n- ✅ **SyscallBaseline** - Per-category mean/std for anomaly detection\n- ✅ **ProcessTraceConfig** - Builder pattern configuration (timeout, threshold, rate limit)\n- ✅ **Streaming API** - Iterator-based syscall streaming for real-time visualization\n- ✅ **OTLP Span Export** - Export trace results to Jaeger/Tempo\n- ✅ **Rate Limiting** - Configurable traces/second limit (Dapper-style)\n- ✅ **Source Correlation** - Optional DWARF source location lookup\n- ✅ **Efficiency Metrics** - Compute vs syscall time ratio\n\n### Integration Testing Infrastructure (Sprint 34)\n- ✅ **Jaeger Backend Tests** - 14 integration tests against actual Jaeger All-in-One\n- ✅ **Compute Tracing Tests** - Verify adaptive sampling, span attributes, parent-child relationships\n- ✅ **Distributed Tracing Tests** - Validate W3C context propagation, trace ID preservation\n- ✅ **Full Stack Tests** - End-to-end tests with all features enabled (OTLP + compute + distributed)\n- ✅ **Docker Infrastructure** - Ready-to-use docker-compose-test.yml for test environment\n- ✅ **Test Utilities** - Reusable Jaeger API helpers for span verification\n- ✅ **Performance Tests** - Overhead measurement tests (baseline vs. full tracing)\n- ✅ **CI/CD Ready** - Designed for automated testing in GitHub Actions\n\n### Performance Optimization (Sprint 36) 🆕\n- ✅ **Memory Pool** - Object pooling for span allocations (20-30% allocation reduction)\n  - Configurable pool capacity (default: 1024 spans)\n  - Automatic growth when exhausted\n  - Pool statistics with hit rate tracking\n- ✅ **Zero-Copy Optimizations** - Cow\u003c'static, str\u003e for static strings (10-15% memory savings)\n  - Static syscall names (\"syscall:open\") use zero-copy borrowing\n  - Static attribute keys (\"syscall.name\") avoid allocations\n  - Owned strings only when dynamic\n- ✅ **Lazy Span Creation** - Builder pattern defers work until export (5-10% overhead reduction)\n  - Spans can be cancelled without expensive operations\n  - Work only happens on commit()\n  - Zero-cost when features disabled\n- ✅ **Batch OTLP Export** - Configurable batching for reduced network overhead\n  - Performance presets: balanced, aggressive, low-latency\n  - Configurable batch size, delay, queue size\n  - Builder pattern for custom tuning\n- ✅ **Benchmark Suite** - Criterion.rs benchmarks for regression detection\n  - Syscall overhead benchmarks (native vs. traced)\n  - OTLP export throughput benchmarks\n  - Memory pool efficiency benchmarks\n  - HTML reports for visualization\n\n### Quality Infrastructure (v0.2.0-0.5.0)\n- ✅ **Property-based testing** - 670+ test cases via proptest\n- ✅ **Pre-commit hooks** - 5 quality gates (format, clippy, tests, audit, bash)\n- ✅ **Dependency policy** - cargo-deny configuration for security\n- ✅ **Zero warnings** - Clippy strict mode enforced\n- ✅ **Trueno integration** - SIMD-accelerated statistics via trueno v0.1.0\n- ✅ **100% coverage** - All new modules (anomaly.rs) have 100% test coverage\n\n## Installation\n\n```bash\n# From crates.io\ncargo install renacer\n\n# From source\ngit clone https://github.com/paiml/renacer\ncd renacer\ncargo install --path .\n```\n\n## Quick Start\n\n```bash\n# Install\ncargo install --git https://github.com/paiml/renacer\n\n# Basic tracing\nrenacer -- ls -la\n\n# With source correlation (requires debug symbols)\nrenacer --source -- cargo test\n\n# Function profiling with flamegraph\nrenacer --function-time --source -- ./my-binary \u003e profile.txt\ncat profile.txt | flamegraph.pl \u003e flamegraph.svg\n\n# JSON output for scripting\nrenacer --format json -- echo \"test\" \u003e trace.json\n\n# CSV output for spreadsheet analysis (Sprint 17)\nrenacer --format csv -- echo \"test\" \u003e trace.csv\nrenacer --format csv -T -- ls \u003e trace-with-timing.csv\nrenacer --format csv --source -- ./my-binary \u003e trace-with-source.csv\nrenacer --format csv -c -- cargo build \u003e stats.csv\n\n# HTML output for visual reports (Sprint 22)\nrenacer --format html -- ls -la \u003e report.html       # Visual trace report\nrenacer --format html -c -- cargo build \u003e stats.html # Statistics as HTML\nrenacer --format html --source -- ./app \u003e trace.html # With source locations\n\n# Filter syscalls\nrenacer -e trace=file -- cat file.txt       # File operations only\nrenacer -e trace=open,read,write -- ls      # Specific syscalls\nrenacer -e trace=!close -- ls               # All syscalls except close (Sprint 15)\nrenacer -e trace=file,!close -- cat file    # File ops except close (Sprint 15)\n\n# Regex patterns (Sprint 16)\nrenacer -e 'trace=/^open.*/' -- ls          # All syscalls starting with \"open\"\nrenacer -e 'trace=/.*at$/' -- cat file      # All syscalls ending with \"at\"\nrenacer -e 'trace=/read|write/' -- app      # Syscalls matching read OR write\nrenacer -e 'trace=/^open.*/,!/openat/' -- ls  # open* except openat\n\n# Multi-process tracing (Sprint 18)\nrenacer -f -- bash -c \"echo parent \u0026\u0026 (echo child \u0026)\"  # Follow forks\nrenacer -f -e trace=file -- make clean      # Follow forks with filtering\nrenacer -f -c -- python app.py              # Multi-process statistics\n\n# Statistics summary\nrenacer -c -T -- cargo build\n\n# Enhanced statistics with percentiles (Sprint 19)\nrenacer -c --stats-extended -- cargo test   # P50/P75/P90/P95/P99 latencies\nrenacer -c --stats-extended --anomaly-threshold 2.5 -- ./app  # Custom anomaly threshold\n\n# HPU-accelerated analysis (Sprint 21)\nrenacer -c --hpu-analysis -- ./heavy-io-app         # Correlation matrix + K-means clustering\nrenacer -c --hpu-analysis --hpu-cpu-only -- app     # Force CPU backend\nrenacer -c --hpu-analysis -e trace=file -- ls       # HPU with filtering\n\n# ML anomaly detection (Sprint 23)\nrenacer -c --ml-anomaly -- cargo build              # KMeans clustering of syscall latencies\nrenacer -c --ml-anomaly --ml-clusters 5 -- ./app    # Custom cluster count\nrenacer -c --ml-anomaly --ml-compare -- ./app       # Compare ML with z-score detection\nrenacer --ml-anomaly --format json -- ./app \u003e ml.json  # ML results in JSON\n\n# Real-time anomaly detection (Sprint 20)\nrenacer --anomaly-realtime -- ./app         # Live anomaly monitoring\nrenacer --anomaly-realtime --anomaly-window-size 200 -- ./app  # Custom window size\nrenacer -c --anomaly-realtime -- cargo test # Combine with statistics\nrenacer --anomaly-realtime -e trace=file -- find /usr  # Monitor only file operations\n\n# Transpiler source mapping (Sprint 24-28)\nrenacer --transpiler-map simulation.rs.sourcemap.json -- ./simulation  # Load Python→Rust source map\nrenacer --transpiler-map algorithm.sourcemap.json -- ./algorithm_rs    # Load C→Rust source map (Decy)\nrenacer --transpiler-map app.sourcemap.json --source -- ./transpiled-app  # Combine with DWARF\nrenacer --transpiler-map map.json --function-time -- ./binary  # Function profiling with source maps\nrenacer --transpiler-map map.json -c -- ./binary       # Source mapping with statistics\n\n# OpenTelemetry OTLP export (Sprint 30)\ndocker-compose -f docker-compose-jaeger.yml up -d  # Start Jaeger\nrenacer --otlp-endpoint http://localhost:4317 --otlp-service-name my-app -- ./program\n# Open http://localhost:16686 to view traces in Jaeger UI\n\nrenacer -s --otlp-endpoint http://localhost:4317 -- ./program  # With source correlation\nrenacer -T --otlp-endpoint http://localhost:4317 -- ./program  # With timing\nrenacer -e trace=file --otlp-endpoint http://localhost:4317 -- ./program  # With filtering\n\n# Unified tracing: OTLP + Transpiler decisions (Sprint 31)\nrenacer --otlp-endpoint http://localhost:4317 --trace-transpiler-decisions -- ./transpiled-app\n# See both syscalls and transpiler decisions in Jaeger UI\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-transpiler-decisions \\\n        --transpiler-map app.sourcemap.json \\\n        -- ./depyler-app  # Full observability: decisions + syscalls + source maps\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-transpiler-decisions \\\n        -T \\\n        -- ./app  # With timing for decision performance analysis\n\n# Block-level compute tracing (Sprint 32) - Trueno SIMD operations\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-compute \\\n        -c --stats-extended \\\n        -- cargo build  # Default: Adaptive sampling (trace blocks \u003e=100μs)\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-compute \\\n        --trace-compute-all \\\n        -c -- ./app  # Debug mode: Trace ALL compute blocks (bypass sampling)\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-compute \\\n        --trace-compute-threshold 50 \\\n        -c -- ./app  # Custom threshold: Trace blocks \u003e=50μs\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-compute \\\n        --trace-transpiler-decisions \\\n        -- ./depyler-app  # Full observability: compute + decisions + syscalls\n\n# Distributed tracing (Sprint 33) - W3C Trace Context propagation\nexport TRACEPARENT=\"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01\"\nrenacer --otlp-endpoint http://localhost:4317 -- ./app  # Auto-detect from env\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-parent \"00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-00\" \\\n        -- ./app  # Explicit context injection\n\nrenacer --otlp-endpoint http://localhost:4317 \\\n        --trace-parent \"00-abc123-def456-01\" \\\n        --trace-compute \\\n        --trace-transpiler-decisions \\\n        -c --stats-extended \\\n        -- ./app  # Full distributed tracing stack\n\n# Attach to running process\nrenacer -p 1234\n```\n\n## Usage\n\n### Command Line Interface\n\n```bash\nrenacer [OPTIONS] [-- \u003cCOMMAND\u003e [ARGS...]]\nrenacer [OPTIONS] -p \u003cPID\u003e\n```\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--source` | Enable DWARF source correlation |\n| `--function-time` | Profile function execution times |\n| `--format \u003cFMT\u003e` | Output format: `text`, `json`, `csv`, `html` |\n| `-c, --count` | Show syscall count statistics |\n| `-T, --timestamps` | Include timestamps in output |\n| `-p \u003cPID\u003e` | Attach to running process by PID |\n| `-f \u003cFILTER\u003e` | Filter syscalls by name pattern |\n| `--tui` | Launch real-time TUI visualization |\n| `--stats-extended` | Show extended statistical analysis |\n\n### As a Library\n\n```rust\nuse renacer::process_tracer::{ProcessTraceConfig, ProcessTrace};\n\nlet config = ProcessTraceConfig::default();\nlet trace = ProcessTrace::new(config);\nlet result = trace.collect(pid)?;\n\nfor event in \u0026result.events {\n    println!(\"{}: {}us\", event.syscall, event.duration_us);\n}\n```\n\n## Examples\n\n### Basic Syscall Tracing\n```bash\n$ renacer -- echo \"Hello\"\nopenat(AT_FDCWD, \"/etc/ld.so.cache\", O_RDONLY|O_CLOEXEC) = 3\nwrite(1, \"Hello\\n\", 6) = 6\nexit_group(0) = ?\n```\n\n### With Source Correlation\n```bash\n$ renacer --source -- ./my-program\nread(3, buf, 1024) = 42          [src/main.rs:15 in my_function]\nwrite(1, \"result\", 6) = 6        [src/main.rs:20 in my_function]\n```\n\n### Function Profiling\n```bash\n$ renacer --function-time --source -- cargo test\n\nFunction Profiling Summary:\n========================\nTotal functions profiled: 5\nTotal syscalls: 142\n\nTop 10 Hot Paths (by total time):\n  1. cargo::build_script  - 45.2% (1.2s, 67 syscalls) ⚠️ SLOW I/O\n  2. rustc::compile       - 32.1% (850ms, 45 syscalls)\n  3. std::fs::read_dir    - 12.4% (330ms, 18 syscalls)\n  ...\n\nCall Graph:\n  cargo::build_script\n    └─ rustc::compile (67 calls)\n       └─ std::fs::read_dir (12 calls)\n```\n\n### Enhanced Statistics with Percentiles (Sprint 19)\n```bash\n$ renacer -c --stats-extended -- cargo build\n\n% time     seconds  usecs/call     calls    errors syscall\n------ ----------- ----------- --------- --------- ----------------\n 65.43    0.142301        4234        42         0 read\n 18.92    0.041234        2062        20         0 write\n 10.23    0.022301         892        25         0 openat\n  3.21    0.007001         700        10         0 close\n  2.21    0.004812         481        10         0 mmap\n------ ----------- ----------- --------- --------- ----------------\n100.00    0.217649                   107         0 total\n\nLatency Percentiles (microseconds):\n  Syscall     P50     P75     P90     P95     P99\n  --------  -----   -----   -----   -----   -----\n  read       2834    4123    5234    6123    9234\n  write      1823    2234    3123    4234    7123\n  openat      823    1034    1234    1534    2234\n  close       623     734     823     923    1123\n  mmap        423     534     623     723     923\n\nPost-Hoc Anomaly Detection (threshold: 3.0σ):\n  2 anomalies detected:\n  - read: 9234 μs (4.2σ above mean)\n  - write: 7123 μs (3.8σ above mean)\n```\n\n### Real-Time Anomaly Detection (Sprint 20)\n```bash\n$ renacer --anomaly-realtime -- ./slow-app\n\nopenat(AT_FDCWD, \"/etc/ld.so.cache\", O_RDONLY) = 3\nread(3, buf, 832) = 832\n⚠️  ANOMALY: write took 5234 μs (4.2σ from baseline 102.3 μs) - 🟡 Medium\nwrite(1, \"processing...\", 14) = 14\n⚠️  ANOMALY: fsync took 8234 μs (6.3σ from baseline 123.4 μs) - 🔴 High\nfsync(3) = 0\nclose(3) = 0\n\n=== Real-Time Anomaly Detection Report ===\nTotal anomalies detected: 12\n\nSeverity Distribution:\n  🔴 High (\u003e5.0σ):   2 anomalies\n  🟡 Medium (4-5σ): 5 anomalies\n  🟢 Low (3-4σ):    5 anomalies\n\nTop Anomalies (by Z-score):\n  1. 🔴 fsync - 6.3σ (8234 μs, baseline: 123.4 ± 1287.2 μs)\n  2. 🔴 write - 5.7σ (5234 μs, baseline: 102.3 ± 902.1 μs)\n  3. 🟡 read - 4.8σ (2341 μs, baseline: 87.6 ± 468.9 μs)\n  ... and 9 more\n```\n\n### OpenTelemetry OTLP Export (Sprint 30)\n```bash\n# Start Jaeger backend\n$ docker-compose -f docker-compose-jaeger.yml up -d\n\n# Export syscall traces to Jaeger\n$ renacer -s --otlp-endpoint http://localhost:4317 --otlp-service-name test-app -- ./test\n[renacer: OTLP export enabled to http://localhost:4317]\nwrite(1, \"Hello, OpenTelemetry!\\n\", 22) = 22  [src/main.rs:3 in main]\nexit_group(0) = ?\n\n# Open Jaeger UI at http://localhost:16686\n# - Service: \"test-app\"\n# - Root span: \"process: ./test\"\n#   - Child span: \"syscall: write\"\n#     - Attributes: syscall.name=write, syscall.result=22,\n#                   code.filepath=src/main.rs, code.lineno=3\n\n# Export with Grafana Tempo\n$ docker-compose -f docker-compose-tempo.yml up -d\n$ renacer --otlp-endpoint http://localhost:4317 --otlp-service-name my-service -- ./app\n\n# Open Grafana at http://localhost:3000\n# Navigate to Explore \u003e Tempo \u003e Search by service name: \"my-service\"\n```\n\nFor complete OTLP integration guide, see [docs/otlp-integration.md](docs/otlp-integration.md).\n\n## Performance\n\nBenchmarks vs strace (Sprint 11-12):\n- **Overhead:** 5-9% vs 8-12% (strace)\n- **Memory:** ~2MB vs ~5MB (strace)\n- **Syscalls:** 335 supported vs 335 (strace)\n- **Features:** Source correlation + function profiling (unique to Renacer)\n\n## Quality Standards\n\nFollowing [paiml-mcp-agent-toolkit](https://github.com/paiml/paiml-mcp-agent-toolkit) EXTREME TDD:\n\n- **Test Coverage:** 91.21% overall, 100% on critical modules\n- **Mutation Score:** 80%+ (via cargo-mutants)\n- **TDG Score:** 94.2/100 (A grade)\n- **Zero Tolerance:** All 142 tests pass, zero warnings\n\n## Development\n\n### Setup\n```bash\ngit clone https://github.com/paiml/renacer\ncd renacer\ncargo build\n```\n\n### Pre-commit Hook\nThe pre-commit hook automatically runs 5 quality gates (\u003c10s):\n```bash\nchmod +x .git/hooks/pre-commit\n\n# Triggered on every commit:\n# 1. cargo fmt --check\n# 2. cargo clippy -- -D warnings\n# 3. bashrs lint (bash/Makefile quality)\n# 4. cargo test --test property_based_comprehensive\n# 5. cargo audit\n```\n\n### Testing\n```bash\n# All tests (142 unit + integration)\ncargo test\n\n# Property-based tests only (670+ cases)\ncargo test --test property_based_comprehensive\n\n# Integration tests with Jaeger backend (Sprint 34)\n# Requires Docker for Jaeger All-in-One\ndocker compose -f docker-compose-test.yml up -d\ncargo test --test sprint34_integration_tests -- --ignored --test-threads=1\ndocker compose -f docker-compose-test.yml down\n\n# With coverage\ncargo llvm-cov --all-features --workspace --lcov --output-path lcov.info\n\n# Mutation testing\ncargo mutants\n```\n\n### Quality Checks\n```bash\n# TDG analysis\npmat analyze tdg src/\n\n# Dependency audit\ncargo audit\n\n# Deny check (licenses, bans, sources)\ncargo deny check\n```\n\n## Architecture\n\n### Modules\n- `cli` - Command-line argument parsing (clap)\n- `tracer` - Core ptrace syscall tracing\n- `syscalls` - Syscall name resolution (335 syscalls)\n- `dwarf` - DWARF debug info parsing (addr2line, gimli)\n- `filter` - Syscall filtering (classes + individual syscalls + regex)\n- `stats` - Statistics tracking (Trueno SIMD, percentiles)\n- `anomaly` - Real-time anomaly detection (Sprint 20)\n- `json_output` - JSON export format\n- `csv_output` - CSV export format (Sprint 17)\n- `html_output` - HTML export format (Sprint 22)\n- `function_profiler` - Function-level profiling with I/O detection\n- `stack_unwind` - Stack unwinding for call graphs\n- `profiling` - Self-profiling infrastructure\n- `hpu` - HPU-accelerated analysis (Sprint 21)\n- `ml_anomaly` - ML-based anomaly detection (Sprint 23)\n- `isolation_forest` - Isolation Forest outlier detection (Sprint 22)\n- `autoencoder` - Autoencoder anomaly detection (Sprint 23)\n- `transpiler_map` - Transpiler source mapping (Sprint 24-28)\n- `decision_trace` - Decision trace capture (Sprint 26-27)\n- `experiment_span` - ML experiment tracking spans (REN-001)\n- `otlp_exporter` - OpenTelemetry OTLP export (Sprint 30)\n- `process_tracer` - Process-level syscall tracing for ptop integration (Sprint 59)\n- `brick_tracer` - ComputeBrick-aware tracing for trueno/cbtop (Sprint 58)\n\n### Dependencies\n- `nix` - Ptrace system calls\n- `addr2line`, `gimli`, `object` - DWARF parsing\n- `clap` - CLI parsing\n- `serde`, `serde_json` - JSON serialization\n- `trueno` - SIMD-accelerated statistics\n- `aprender` - ML anomaly detection\n- `proptest` - Property-based testing\n- `opentelemetry`, `opentelemetry_sdk`, `opentelemetry-otlp` - OTLP tracing (Sprint 30)\n- `tokio` - Async runtime for OTLP export (Sprint 30)\n\n## Roadmap\n\nSee [CHANGELOG.md](CHANGELOG.md) for version history.\n\n### v0.10.0 ✅ (Current)\n- See [CHANGELOG.md](CHANGELOG.md) for details\n\n### v0.6.6 ✅ (2025-11-30)\n- Experiment Span Tracking - ML experiment integration with entrenar (REN-001)\n- SpanType::Experiment variant for ML training spans\n- ExperimentMetadata struct (model_name, epoch, step, loss, metrics)\n- Golden trace comparison API with EquivalenceScore\n- Decision trace export and CITL integration (Sprint 49)\n\n### v0.6.0 ✅ (2025-11-20)\n- Ruchy Runtime Integration - Link OTLP traces with transpiler decisions (Sprint 31)\n- Block-Level Compute Tracing - Trueno SIMD operations as OTLP spans (Sprint 32)\n- W3C Trace Context Propagation - Distributed tracing support (Sprint 33)\n- Full observability stack: syscalls + decisions + compute + app traces\n\n### v0.5.0 ✅ (2025-11-18)\n- OpenTelemetry OTLP integration (Sprint 30)\n- Distributed tracing with Jaeger, Tempo, and OTLP-compatible backends\n- Docker compose examples for observability stacks\n- Full integration with all Renacer features\n- Ruchy Integration Milestone Phase 4 complete\n\n### v0.4.0 ✅ (2025-11-18)\n- Chaos Engineering infrastructure (Sprint 29)\n- Fuzz testing integration\n- Transpiler source mapping for Python→Rust and C→Rust (Sprint 24-28)\n- Decision trace capture (Sprint 26-27)\n- ML/DL anomaly detection (Sprint 22-23)\n- HTML output format (Sprint 22)\n- HPU-accelerated analysis (Sprint 21)\n\n### v0.3.0 ✅ (2025-11-17)\n- Advanced filtering (negation, regex patterns)\n- CSV export format\n- Multi-process tracing (-f flag)\n- Enhanced statistics (percentiles, SIMD-accelerated)\n- Real-time anomaly detection\n- Trueno Integration Milestone complete\n\n### v0.7.0 (Planned - Sprint 34-36)\n- Advanced context propagation (tracestate, B3 format)\n- Span sampling strategies\n- Performance optimization\n\n### v1.0.0 (Planned)\n- Production hardening\n- Cross-platform support (ARM64)\n- eBPF backend option for reduced overhead\n- Plugin architecture\n- Web UI for trace analysis\n\n\n## MSRV\n\nMinimum Supported Rust Version: **1.75**\n\n## See Also\n\n- [Cookbook](examples/) — 6 runnable examples\n\n## License\n\nMIT - See [LICENSE](LICENSE) file.\n\n## Documentation\n\n**📖 The Renacer Book** - Comprehensive TDD-verified guide (see [book/](./book/) directory)\n\nThe book includes:\n- [Getting Started](book/src/getting-started/) - Installation and quick start\n- [Core Concepts](book/src/core-concepts/) - Syscall tracing, DWARF correlation, filtering\n- [Examples](book/src/examples/) - Real-world use cases (all test-backed)\n- [Advanced Topics](book/src/advanced/) - Function profiling, anomaly detection, HPU acceleration\n- [EXTREME TDD](book/src/contributing/extreme-tdd.md) - Zero-hallucination development methodology\n\nAll book examples are validated by GitHub Actions to ensure zero hallucination.\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Follow EXTREME TDD (tests first!)\n4. Ensure all quality gates pass\n5. Submit pull request\n\nSee:\n- [The Renacer Book - Contributing](book/src/contributing/extreme-tdd.md) for EXTREME TDD methodology\n- [docs/specifications/deep-strace-rust-wasm-binary-spec.md](docs/specifications/deep-strace-rust-wasm-binary-spec.md) for complete specification\n\n## Credits\n\nBuilt with:\n- Toyota Way quality principles\n- EXTREME TDD methodology\n- [paiml-mcp-agent-toolkit](https://github.com/paiml/paiml-mcp-agent-toolkit) workflows\n- [Trueno](https://github.com/paiml/trueno) SIMD library\n\nDeveloped by [Pragmatic AI Labs](https://paiml.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaiml%2Frenacer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaiml%2Frenacer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaiml%2Frenacer/lists"}