Fonctionnalités et profils
Compilation conditionnelle
Fonctionnalités et profils est une leçon Learn Rust Coding gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn Rust Coding, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn Rust Coding comprend 4 leçons au total.
Que sont les fonctionnalités ?
Les fonctionnalités vous permettent d’activer ou de désactiver certaines parties facultatives d’un paquet lors de la compilation. Elles rendent les paquets flexibles : les utilisateurs ne paient que pour ce qu’ils utilisent.
Déclarer des fonctionnalités
Définissez les fonctionnalités dans la table [features]. Chaque fonctionnalité peut activer d’autres fonctionnalités ou des dépendances facultatives.
[features]
default = ["json"]
json = []
fast_math = []Compilation conditionnelle
Protégez le code avec l’attribut cfg afin qu’il ne soit compilé que lorsqu’une fonctionnalité est activée.
#[cfg(feature = "json")]
fn export() {
println!("Exporting as JSON");
}
fn main() {
#[cfg(feature = "json")]
export();
}Activer des fonctionnalités
Les utilisateurs d’un paquet activent les fonctionnalités dans la déclaration de dépendance ou sur la ligne de commande.
[dependencies]
my_lib = { version = "1.0", features = ["fast_math"] }Fonctionnalités par défaut
La fonctionnalité default est activée automatiquement. Désactivez-la avec default-features = false pour choisir une compilation minimale.
[dependencies]
my_lib = { version = "1.0", default-features = false }Fonctionnalités via la CLI
Vous pouvez également activer ou désactiver les fonctionnalités pour chaque commande sans modifier le manifeste.
cargo build --features fast_math
cargo run --no-default-features
cargo test --all-featuresQue sont les profils ?
Les profils contrôlent les paramètres du compilateur, comme le niveau d’optimisation et les informations de débogage. Les deux profils intégrés sont dev (débogage) et release.
Le profil dev
Le profil dev est utilisé par cargo build. Il privilégie une compilation rapide et la facilité de débogage plutôt que la vitesse d’exécution.
[profile.dev]
opt-level = 0
debug = trueLe profil release
Le profil release (utilisé avec --release) active les optimisations pour produire des binaires rapides.
[profile.release]
opt-level = 3
lto = true
strip = trueAjuster un profil
Vous pouvez affiner n’importe quel profil. Par exemple, activez un certain niveau d’optimisation dans les compilations dev pour accélérer l’exécution tout en conservant des compilations rapides pour les dépendances.
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 3Dépendances facultatives comme fonctionnalités
Une dépendance facultative crée implicitement une fonctionnalité du même nom. L’activation de cette fonctionnalité inclut la dépendance : les utilisateurs n’adoptent donc des paquets plus lourds que lorsqu’ils en ont besoin.
[dependencies]
serde = { version = "1.0", optional = true }
[features]
serialize = ["dep:serde"]Vérification rapide
Quel attribut compile un bloc de code uniquement lorsqu’une fonctionnalité est activée ?
Récapitulatif
Vous avez appris à utiliser les outils de compilation conditionnelle :
[features]déclare les fonctionnalités facultatives#[cfg(feature = ...)]conditionne le code selon une fonctionnalitédefault-features = falsepermet de choisir des compilations minimales- Les profils comme
devetreleasecontrôlent l’optimisation et les paramètres de débogage
Questions Fréquemment Posées
La leçon « Fonctionnalités et profils » est-elle gratuite ?
Oui — le texte complet de « Fonctionnalités et profils » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn Rust Coding, passe à CoddyKit PRO. Le cours Learn Rust Coding comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Fonctionnalités et profils » ?
Compilation conditionnelle Tu pratiques Learn Rust Coding avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn Rust Coding ?
Aucune expérience préalable n'est requise. Learn Rust Coding sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Fonctionnalités et profils » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn Rust Coding ?
Oui. Chaque leçon Learn Rust Coding inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases de Cargo
- Cargo.toml
- Espaces de travail
- Fonctionnalités et profils