Fix Fastly Compute Rust build failures caused by edition2024 dependencies. Use when: (1) cargo build fails with "feature `edition2024` is required", (2) wit-bindgen or wasip2 crates fail to download/parse, (3) Fastly SDK pulls in incompatible transitive dependencies, (4) Build worked before but fails after dependency update. Solves by pinning wit-bindgen, wasip2, and related crates to pre-edition2024 versions.
Scanned 5/27/2026
Install via CLI
openskills install divinevideo/divine-mobile---
name: fastly-compute-rust-edition2024-fix
description: |
Fix Fastly Compute Rust build failures caused by edition2024 dependencies. Use when:
(1) cargo build fails with "feature `edition2024` is required", (2) wit-bindgen or
wasip2 crates fail to download/parse, (3) Fastly SDK pulls in incompatible transitive
dependencies, (4) Build worked before but fails after dependency update. Solves by
pinning wit-bindgen, wasip2, and related crates to pre-edition2024 versions.
author: Claude Code
version: 1.0.0
date: 2026-01-20
---
# Fastly Compute Rust Edition2024 Dependency Fix
## Problem
Fastly Compute Rust projects fail to build with errors about `edition2024` being required,
even when using stable Rust. The error appears when transitive dependencies (especially
`wit-bindgen` 0.51+ and `wasip2` 1.0.2+) require Rust 1.87+ which isn't stable yet.
## Context / Trigger Conditions
- Error: `feature 'edition2024' is required`
- Error: `failed to parse manifest at .../wit-bindgen-0.51.0/Cargo.toml`
- Error mentions "requires Rust 1.87.0" for wit-bindgen or wasip2
- Build previously worked but fails after running `cargo update`
- Using Fastly SDK (`fastly` crate) version 0.11.x
## Solution
Pin the problematic transitive dependencies in your `Cargo.toml`:
```toml
[dependencies]
# Fastly Compute SDK - pin to specific version
fastly = "=0.11.12"
# Pin these to avoid edition2024 requirement
wit-bindgen = "=0.46.0"
wasip2 = "=1.0.1"
# Also pin these if you use k256 or crypto
k256 = { version = "=0.13.3", features = ["schnorr"] }
base64ct = "=1.6.0"
```
Also update `rust-toolchain.toml` to include both WASM targets:
```toml
[toolchain]
channel = "1.83.0"
targets = ["wasm32-wasi", "wasm32-wasip1"]
```
Then:
```bash
rm Cargo.lock
rustup target add wasm32-wasip1
cargo build --target wasm32-wasi
```
## Verification
Build should complete without edition2024 errors:
```bash
cargo build --target wasm32-wasi 2>&1 | grep -i "edition2024"
# Should return nothing (no matches)
```
## Example
Before fix (Cargo.toml):
```toml
[dependencies]
fastly = "0.11" # Allows 0.11.x which pulls wit-bindgen 0.51+
```
After fix (Cargo.toml):
```toml
[dependencies]
fastly = "=0.11.12"
wit-bindgen = "=0.46.0"
wasip2 = "=1.0.1"
```
## Notes
- The `=` prefix in version strings means "exactly this version"
- Fastly CLI 13.x switched from `wasm32-wasi` to `wasm32-wasip1` target
- This is a temporary fix until Rust 1.87 becomes stable
- The warning about `wasm32-wasi` being renamed to `wasm32-wasip1` is expected
- When Rust 1.87 is stable, these pins can be removed
## References
- Fastly Compute Rust SDK: https://docs.fastly.com/products/compute
- Rust Edition 2024: https://doc.rust-lang.org/edition-guide/rust-2024/

No comments yet. Be the first to comment!