Features y perfiles
Compilación condicional
Features y perfiles es una lección gratuita de Learn Rust Coding en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn Rust Coding, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn Rust Coding incluye 4 lecciones en total.
¿Qué son las features?
Las features permiten activar o desactivar partes opcionales de un crate durante la compilación. Hacen que los crates sean flexibles: quienes los usan solo pagan por lo que necesitan.
Declarar features
Defina las features en la tabla [features]. Cada feature puede activar otras features o dependencias opcionales.
[features]
default = ["json"]
json = []
fast_math = []Compilación condicional
Proteja el código con el atributo cfg para que solo se compile cuando una feature esté activada.
#[cfg(feature = "json")]
fn export() {
println!("Exporting as JSON");
}
fn main() {
#[cfg(feature = "json")]
export();
}Activar features
Quienes usan el crate activan las features en la declaración de la dependencia o en la línea de comandos.
[dependencies]
my_lib = { version = "1.0", features = ["fast_math"] }Features predeterminadas
La feature default se activa automáticamente. Desactívela con default-features = false para optar por una compilación mínima.
[dependencies]
my_lib = { version = "1.0", default-features = false }Features en la CLI
También puede activar o desactivar features para cada comando sin editar el manifiesto.
cargo build --features fast_math
cargo run --no-default-features
cargo test --all-features¿Qué son los perfiles?
Los profiles controlan ajustes del compilador, como el nivel de optimización y la información de depuración. Los dos perfiles integrados son dev (depuración) y release.
El perfil dev
El perfil dev se usa con cargo build. Prioriza la compilación rápida y la facilidad de depuración sobre la velocidad de ejecución.
[profile.dev]
opt-level = 0
debug = trueEl perfil release
El perfil release (que se usa con --release) activa las optimizaciones para generar binarios rápidos.
[profile.release]
opt-level = 3
lto = true
strip = trueAjustar un perfil
Puede ajustar cualquier perfil. Por ejemplo, puede activar un poco de optimización en las compilaciones de desarrollo para acelerar la ejecución y mantener compilaciones rápidas para las dependencias.
[profile.dev]
opt-level = 1
[profile.dev.package."*"]
opt-level = 3Dependencias opcionales como features
Una dependencia opcional crea implícitamente una feature con el mismo nombre. Activar la feature incorpora la dependencia, de modo que los usuarios solo optan por crates más pesados cuando los necesitan.
[dependencies]
serde = { version = "1.0", optional = true }
[features]
serialize = ["dep:serde"]Comprobación rápida
¿Qué atributo compila un bloque de código únicamente cuando una feature está activada?
Recapitulación
Ha aprendido las herramientas de compilación condicional:
[features]declara funcionalidades opcionales#[cfg(feature = ...)]condiciona el código según una featuredefault-features = falsepermite optar por compilaciones mínimas- Los perfiles como
devyreleasecontrolan la optimización y los ajustes de depuración
Preguntas frecuentes
¿La lección «Features y perfiles» es gratis?
Sí — el texto completo de «Features y perfiles» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn Rust Coding, actualiza a CoddyKit PRO. El curso de Learn Rust Coding incluye 4 lecciones en total.
¿Qué aprenderé en «Features y perfiles»?
Compilación condicional Practicas Learn Rust Coding con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn Rust Coding?
No se requiere experiencia previa. Learn Rust Coding en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Features y perfiles»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn Rust Coding?
Sí. Cada lección de Learn Rust Coding incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Fundamentos de Cargo
- Cargo.toml
- Workspaces
- Features y perfiles