All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. Pre-1.0, a breaking change bumps the minor version.
0.2.0 - 2026-06-29
facetfeature: theMessage::as_facetreflection hook, opt-in per type via#[derive(Facet)], returning afacet::Peekover the live message body so a subscriber can read fields by name. Independent ofserde: a message may derive either, both, or neither, and a single subscriber can react to all of them.facetre-exported astracing_wide::facet, so subscribers namePeek/Facetthrough the exact version the crate compiled against. To deriveFacet, depend onfacetdirectly at that version or use#[facet(crate = tracing_wide::facet)].- Catalogue descriptors derive
Facetunder thefacetfeature, so a manifest can be produced with any facet serializer:level,origin, and themetamaps render identically to the serde output. New examplecatalogue-facet. - Example
subscriber-facet, filtering on a message field's value via reflection. - Thread-local scoped subscribers:
Subscribers::set_default(returning aDefaultGuard) andwith_default, mirroringtracing's own scoped-dispatch API. While a guard is held, the calling thread fans out to that set instead of the globallyinstalled one - useful for tests and per-thread routing.
- Breaking:
catalogue::MessageDescriptor::levelis nowcatalogue::LevelName(an enum mirroringtracing::Level) rather thantracing::Level; recover the level withLevel::from(..). - Renamed examples:
cataloguetocatalogue-serde,serializabletosubscriber-serde.
0.1.0 - 2026-06-13
Initial release.