This project is a structured tracing framework for Rust that serves as an async-aware instrumentation library and telemetry data collector. It provides a structured logging facade and the tools necessary to record, filter, and route event-based diagnostic data from both standard applications and embedded systems.
The framework distinguishes itself through a core implementation that supports bare-metal and no-standard-library environments without requiring a dynamic memory allocator. It specifically handles the complexities of asynchronous workflows by propagating diagnostic contexts across futures and tracking execution flow across await points.
Its broader capabilities include span lifecycle management to model execution hierarchy and causal relationships, as well as field-based structured metadata for machine-readable telemetry. The system incorporates a layered middleware composition for data routing and employs severity-based and compile-time filtering to minimize production overhead.
The project also provides interoperability layers to bridge structured telemetry events with traditional logging frameworks.