Cargo probará en nightly un cambio para reducir el tamaño del directorio target

Fuentes: Experiment in reducing target directory size on nightly

El equipo de Cargo, la herramienta de construcción del lenguaje Rust, pondrá en marcha un experimento en el canal nightly que activará por defecto la opción -Zembed-metadata=no, una bandera inestable pensada para reducir el volumen del directorio target sin pérdida de funcionalidad. La iniciativa busca recabar feedback antes de decidir si la característica se estabiliza, se modifica o se descarta.

El tamaño del directorio target es una de las quejas más repetidas por los usuarios de Rust: en la encuesta "State of Rust" de 2025 figuró como el segundo problema más citado, solo por detrás de la velocidad de compilación. Gran parte de ese volumen procede de la información de depuración y de los artefactos de compilación incremental, pero también del llamado "crate metadata", que actualmente se almacena duplicado en los archivos .rmeta y .rlib de cada biblioteca compilada.

Con -Zembed-metadata=no, el compilador deja de incrustar los metadatos en los .rlib, ya disponibles en los .rmeta. Las pruebas realizadas con el nightly rustc 1.100.0 sobre los crates serde y cargo, en el objetivo x86_64-unknown-linux-gnu, muestran reducciones de hasta un 29,8 % en el perfil release sin incremental ni debuginfo, y de un 33,4 % al compilar cargo en release. Con los valores por defecto del perfil dev, donde la información de depuración domina el tamaño, la mejora es más modesta, en torno al 5 %.

En la mayoría de los casos el cambio será transparente, pero quienes enlacen manualmente con archivos .rlib tendrán que indicar también la ruta al .rmeta correspondiente mediante el flag --extern. Quienes no deseen participar pueden desactivar la opción con -Zembed-metadata=yes, la variable de entorno CARGO_UNSTABLE_EMBED_METADATA=true o el archivo .cargo/config.toml. El equipo de Cargo invita a reportar cualquier incidencia en el repositorio del proyecto.