Wild linker : un linker Linux rapide avec un avenir incrémental
Un éditeur de liens très rapide pour Linux. Rust (Cargo) Vous pouvez utiliser l'une des options mentionnées ci-dessus dans ~/.cargo/config.toml : Ou : CMake CMake 4.4 ou version ultérieure prend en charge Wild directement lorsqu'il est utilisé avec Clang ou GCC 16 ou version ultérieure.
En bref
- De quoi s’agit-il ?
- A very fast linker for Linux. Rust (Cargo) You can use one of the options mentioned above in ~/.cargo/config.toml: Or: CMake CMake 4.4 or later supports Wild directly when used with Clang or GCC 16 or later.. Analyse fondée sur le README, ses commandes et ses limites déclarées.
- À qui s’adresse-t-il ?
- Convient aux builds Linux où la compatibilité du linker peut être vérifiée et où le linking incrémental n’est pas encore requis. Ne convient pas à Windows, Mach-O ou aux scripts complexes non couverts.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 5 jours.
- En quel langage est-il écrit ?
- Principalement Rust, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un linker avec un objectif de linking incrémental
Wild est un linker pour Linux, écrit en Rust. Son objectif déclaré est d'être très rapide pour le développement itératif. Le README indique que le plan est de le rendre incrémental à terme, mais cela n'est pas encore implémenté. Même sans linking incrémental, l'auteur affirme que Wild est déjà assez rapide. Le choix de Rust est expliqué dans la FAQ : l'auteur espère que l'écriture en Rust rendra la complexité du linking incrémental réalisable, ce que l'auteur de mold a déclaré ne pas avoir l'intention de faire.
Dans le README de wild-linker/wild, les éléments vérifiables sont les commandes, les chemins et les options explicitement montrés. Pour wild, relevez ces éléments avant l’essai : # Wild linker Wild is a linker with the goal of being very fast for iterative development. The plan is to eventually make it incremental, however that isn't yet implemented. It is however already pretty fast even without incremental linking. ## Installation ### From GitHub releases Download a tarball from the [releases page](https://github.com/wild-linker/wild/releases). Unpack it and copy the `wild` binary some. Cette lecture permet de distinguer une capacité documentée d’une hypothèse sur l’outil. Notez la version, l’entrée utilisée et la sortie observée ; une différence doit être rapprochée du fichier ou de l’option concernée, pas transformée en promesse générale.
Options d'installation · wild linker wild
Wild peut être installé à partir des versions GitHub en téléchargeant une archive et en plaçant le binaire wild dans votre PATH. Il est également disponible via cargo-binstall avec 'cargo binstall wild-linker', via Homebrew avec 'brew install wild-linker/wild/wild', et via crates.io avec 'cargo install --locked wild-linker'. Pour le code non publié le plus récent, le README montre 'cargo install --locked --bin wild --git https://github.com/wild-linker/wild.git wild-linker'. Les utilisateurs de Nix peuvent utiliser une version stable de Nixpkgs ou suivre la documentation nix pour la dernière révision git.
Faire de Wild le linker par défaut
Wild est conçu comme un remplacement direct des autres linkers, invoqué par GCC ou Clang. Le README liste trois façons : --ld-path=wild de Clang, l'option -fuse-ld=wild disponible dans GCC 16.1+ et Clang (avec Clang nécessitant un binaire ou un lien symbolique ld.wild), et le chemin générique -B pointant vers un répertoire contenant un lien symbolique ld vers wild. Des exemples d'intégration spécifiques sont donnés pour Cargo de Rust, CMake 4.4 ou supérieur (avec -DCMAKE_LINKER_TYPE=WILD), et pour autotools, meson ou CMake plus ancien via LDFLAGS ou un lien symbolique et des drapeaux -B. Il y a aussi un exemple de configuration pour Illumos.
Ce qui fonctionne et ce qui ne fonctionne pas encore
Le README liste les plateformes supportées : x86-64, ARM64, RISC-V (riscv64gc), LoongArch64 et PPC64LE sous Linux, les deux derniers étant marqués comme support initial. Il liste également les fonctionnalités fonctionnelles : binaires statiques non relogeables, statique-PIE, binaires dynamiquement liés, objets partagés, proc-macros Rust, informations de débogage, support GNU jobserver, support partiel de scripts de lien et LTO de plugin de linker (avec des problèmes connus). Il indique explicitement que le linking incrémental, les scripts de lien plus complexes, le support Mach-O et le support Windows ne sont pas encore faits. La plupart des crates les plus téléchargés sur crates.io ont été testés et réussissent leurs tests, bien qu'avec une réserve sur d'éventuels bugs.
Vérifier que Wild a été utilisé
Pour vérifier que Wild a réellement été utilisé pour lier un binaire, le README suggère d'utiliser readelf de binutils : 'readelf --string-dump .comment my-executable' et de chercher une ligne comme 'Linker: Wild version 0.1.0'. Alternativement, on peut utiliser 'strings my-executable | grep Linker:'. Cette vérification est recommandée car certains systèmes de construction ne montrent pas clairement quel linker a été invoqué.
Benchmarks et suivi des performances
Wild publie des résultats de benchmarks pour le linking de Chromium, librustc-driver, Wild lui-même et rust-analyzer sur un Ryzen 9 9955HX, un ordinateur portable Intel de 2020 et un Raspberry Pi 5. Tous les benchmarks sont exécutés avec une sortie vers tmpfs. Le README inclut des liens vers les fichiers de benchmarks par système et note que le temps de liaison de Wild est suivi au fil des versions. Les chiffres exacts ne sont pas reproduits ici ; ils sont disponibles dans les pages de benchmarks liées.
Gouvernance du projet et licence
Le projet dispose d'un guide de contribution, d'un document de conception, d'un serveur de chat Zulip et d'un blog de l'auteur. Il suit le code de conduite Rust, avec une adresse e-mail spécifique pour les préoccupations de modération. Le README déclare que le logiciel est sous licence Apache-2.0 ou MIT, au choix de l'utilisateur, et que les contributions sont sous double licence en conséquence. Les métadonnées du référentiel indiquent la licence SPDX comme Apache-2.0, mais le README mentionne explicitement l'option de double licence. Le README ne fournit aucune garantie ou support.
Conclusion éditoriale
Convient aux builds Linux où la compatibilité du linker peut être vérifiée et où le linking incrémental n’est pas encore requis. Ne convient pas à Windows, Mach-O ou aux scripts complexes non couverts. Testez d’abord cargo test avec Wild, puis readelf --string-dump .comment pour confirmer le linker.
Notes de la communauté