Current MSRV
The minimum supported Rust version (MSRV) is 1.75.
MSRV Policy
The current stable Rust compiler and the three most recent minor versions before it will always be supported.For example, if the current stable compiler version is 1.49, the minimum supported version will not be increased past 1.46, three minor versions prior.
- Stability - Users don’t need to constantly upgrade their Rust toolchain
- Modern features - The project can use recent Rust language features
- Compatibility - Most projects can adopt OpenTelemetry without toolchain changes
Semver and MSRV
This means:- MSRV increases can happen in minor releases
- Users pinning to a specific minor version may need to upgrade their Rust toolchain
- The MSRV is documented in release notes when it changes
Checking Your Rust Version
To check your current Rust version:Version Requirements by Component
All OpenTelemetry Rust crates in the main repository share the same MSRV:| Crate | MSRV |
|---|---|
opentelemetry | 1.75 |
opentelemetry-sdk | 1.75 |
opentelemetry-otlp | 1.75 |
opentelemetry-stdout | 1.75 |
opentelemetry-http | 1.75 |
opentelemetry-appender-log | 1.75 |
opentelemetry-appender-tracing | 1.75 |
opentelemetry-jaeger-propagator | 1.75 |
opentelemetry-prometheus | 1.75 |
opentelemetry-semantic-conventions | 1.75 |
opentelemetry-zipkin | 1.75 |
Third-party crates in the OpenTelemetry Rust Contrib repository may have different MSRV requirements.
CI Testing
The project’s continuous integration (CI) pipeline tests against:- MSRV (1.75) - Ensures compatibility with the minimum version
- Stable - Tests against the current stable Rust release
- Nightly (optional) - Identifies potential future compatibility issues
Platform Support
OpenTelemetry Rust supports all platforms that the Rust compiler supports, with primary testing on:- Linux (x86_64, aarch64)
- macOS (x86_64, aarch64/Apple Silicon)
- Windows (x86_64)
- WebAssembly (wasm32-unknown-unknown)
Platform-specific issues are tracked with labels like
platform:windows, platform:linux, platform:mac, and platform:wasm in the issue tracker.When MSRV Changes
MSRV increases are announced:- Release notes - Documented in the changelog for the release
- Migration guide - Instructions for updating if needed
- GitHub issues - Advance notice when possible
Recent MSRV Changes
The MSRV history helps you understand the project’s evolution:- 1.75 (Current) - Added for modern async/await improvements
- Previous versions followed the same “stable minus 3” policy
Dependencies and MSRV
OpenTelemetry Rust’s MSRV is influenced by:- Core dependencies (tokio, serde, etc.) - Their MSRV requirements
- Language features - New Rust features that improve the implementation
- Ecosystem compatibility - Alignment with other OpenTelemetry implementations
Troubleshooting
Build Fails on Older Rust
If you encounter build errors on an older Rust version:Pinning to MSRV
If you need to ensure builds work on the MSRV:cargo to check the Rust version before building.
Using Older Versions
If you cannot upgrade your Rust toolchain:- Pin OpenTelemetry versions - Use an older release with a lower MSRV
- Check compatibility - Review release notes for MSRV changes
- Plan migration - Consider upgrading Rust when possible
Contributing and MSRV
When contributing to OpenTelemetry Rust: If you believe a feature requires a newer Rust version:- Open an issue to discuss the MSRV increase
- Document the benefit of the newer feature
- Get maintainer approval before proceeding
Future Direction
The MSRV policy is reviewed periodically to balance:- User stability - Not forcing frequent toolchain updates
- Modern features - Access to language improvements
- Ecosystem alignment - Compatibility with other libraries
Discuss MSRV Policy
Join the conversation about MSRV policy in GitHub Discussions.