Fastly Compute Rust Edition2024 Dependency Fix
Problem
Les projets Fastly Compute Rust échouent à la compilation avec des erreurs indiquant que edition2024 est requise,
même en utilisant une version stable de Rust. L'erreur apparaît quand les dépendances transitives (notamment
wit-bindgen 0.51+ et wasip2 1.0.2+) nécessitent Rust 1.87+ qui n'est pas encore stable.
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 ou wasip2
- La compilation fonctionnait auparavant mais échoue après
cargo update - Utilisation de Fastly SDK (crate
fastly) version 0.11.x
Solution
Épinglez les dépendances transitives problématiques dans votre Cargo.toml :
[dependencies]
# Fastly Compute SDK - épinglez à une version spécifique
fastly = "=0.11.12"
# Épinglez ces versions pour éviter la exigence edition2024
wit-bindgen = "=0.46.0"
wasip2 = "=1.0.1"
# Épinglez aussi ces versions si vous utilisez k256 ou crypto
k256 = { version = "=0.13.3", features = ["schnorr"] }
base64ct = "=1.6.0"
Mettez aussi à jour rust-toolchain.toml pour inclure les deux targets WASM :
[toolchain]
channel = "1.83.0"
targets = ["wasm32-wasi", "wasm32-wasip1"]
Puis :
rm Cargo.lock
rustup target add wasm32-wasip1
cargo build --target wasm32-wasi
Verification
La compilation devrait se terminer sans erreurs edition2024 :
cargo build --target wasm32-wasi 2>&1 | grep -i "edition2024"
# Ne devrait rien retourner (aucune correspondance)
Example
Avant correction (Cargo.toml) :
[dependencies]
fastly = "0.11" # Autorise 0.11.x ce qui récupère wit-bindgen 0.51+
Après correction (Cargo.toml) :
[dependencies]
fastly = "=0.11.12"
wit-bindgen = "=0.46.0"
wasip2 = "=1.0.1"
Notes
- Le préfixe
=dans les chaînes de version signifie « exactement cette version » - Fastly CLI 13.x a changé de target
wasm32-wasiàwasm32-wasip1 - C'est un correctif temporaire jusqu'à ce que Rust 1.87 devienne stable
- L'avertissement à propos de
wasm32-wasirenommé enwasm32-wasip1est attendu - Quand Rust 1.87 sera stable, ces épingles pourront être supprimées
References
- Fastly Compute Rust SDK: https://docs.fastly.com/products/compute
- Rust Edition 2024: https://doc.rust-lang.org/edition-guide/rust-2024/