> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/open-telemetry/opentelemetry-rust/llms.txt
> Use this file to discover all available pages before exploring further.

# Supported Rust Versions

> Learn about the minimum supported Rust version (MSRV) policy and compatibility guarantees for OpenTelemetry Rust.

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

## Current MSRV

<Info>
  The minimum supported Rust version (MSRV) is **1.75**.
</Info>

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.

<Note>
  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.
</Note>

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

<Warning>
  Increasing the minimum supported compiler version is **not** considered a semver breaking change as long as it complies with this policy.
</Warning>

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:

```bash theme={null}
rustc --version
```

To update to the latest stable version:

```bash theme={null}
rustup update stable
```

## 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 |

<Note>
  Third-party crates in the [OpenTelemetry Rust Contrib](https://github.com/open-telemetry/opentelemetry-rust-contrib) repository may have different MSRV requirements.
</Note>

## 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)

<Info>
  Platform-specific issues are tracked with labels like `platform:windows`, `platform:linux`, `platform:mac`, and `platform:wasm` in the issue tracker.
</Info>

## 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:

```bash theme={null}
# 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:

```toml theme={null}
# 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:

<Warning>
  Do not use language features or APIs that require a Rust version newer than the current MSRV without discussion.
</Warning>

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

<Card title="Discuss MSRV Policy" icon="comments" href="https://github.com/open-telemetry/opentelemetry-rust/discussions">
  Join the conversation about MSRV policy in GitHub Discussions.
</Card>
