Objectives
Stabilize the core instrumentation API while preparing for long-term maintenance and ecosystem growth.
Proposed Changes
- Extract Statics to Core Crate
- Create
fastrace-core with shared static state and minimal types
- Allow any facade version to connect to any collector version
- Enables independent evolution: libraries can upgrade facades without breaking applications' collector setup
- Prevents version conflicts in dependency trees
- OpenTelemetry 1.0 Dependency (Optional)
- Wait for
opentelemetry-rust to stabilize .
- Property Value Type Decision
- Current: Cow<'static, str> (maximum performance)
- Alternative: Variant values like OTel (more flexible, potential complexity)
- Need to decide: Stick with current approach for simplicity/performance, or adopt OTel-style variants for ecosystem compatibility?
Questions for Community
- Are there API pain points that need addressing before 1.0?
- Preference on property values: performance-first vs ecosystem compatibility?
- Any concerns about the core crate separation approach?
Objectives
Stabilize the core instrumentation API while preparing for long-term maintenance and ecosystem growth.
Proposed Changes
fastrace-corewith shared static state and minimal typesopentelemetry-rustto stabilize .Questions for Community