Skip to main content
OpenTelemetry Rust maintains a clear policy for supported Rust compiler versions to balance stability with access to modern language features.

Current MSRV

The minimum supported Rust version (MSRV) is 1.75.
OpenTelemetry Rust is built against the latest stable release. The current OpenTelemetry version is not guaranteed to build on Rust versions earlier than the minimum supported version.

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.
This policy ensures:
  • 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

Increasing the minimum supported compiler version is not considered a semver breaking change as long as it complies with this policy.
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:
rustc --version
To update to the latest stable version:
rustup update stable

Version Requirements by Component

All OpenTelemetry Rust crates in the main repository share the same MSRV:
CrateMSRV
opentelemetry1.75
opentelemetry-sdk1.75
opentelemetry-otlp1.75
opentelemetry-stdout1.75
opentelemetry-http1.75
opentelemetry-appender-log1.75
opentelemetry-appender-tracing1.75
opentelemetry-jaeger-propagator1.75
opentelemetry-prometheus1.75
opentelemetry-semantic-conventions1.75
opentelemetry-zipkin1.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
This testing strategy ensures that changes don’t accidentally break MSRV compatibility.

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:
  1. Release notes - Documented in the changelog for the release
  2. Migration guide - Instructions for updating if needed
  3. 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:
# Update to the latest stable Rust
rustup update stable

# Or install a specific version
rustup install 1.75
rustup default 1.75

Pinning to MSRV

If you need to ensure builds work on the MSRV:
# In your Cargo.toml
[package]
rust-version = "1.75"
This causes cargo to check the Rust version before building.

Using Older Versions

If you cannot upgrade your Rust toolchain:
  1. Pin OpenTelemetry versions - Use an older release with a lower MSRV
  2. Check compatibility - Review release notes for MSRV changes
  3. Plan migration - Consider upgrading Rust when possible

Contributing and MSRV

When contributing to OpenTelemetry Rust:
Do not use language features or APIs that require a Rust version newer than the current MSRV without discussion.
If you believe a feature requires a newer Rust version:
  1. Open an issue to discuss the MSRV increase
  2. Document the benefit of the newer feature
  3. 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.

Build docs developers (and LLMs) love