Binarios
- Permite tener varios programas independientes en un mismo proyecto
- El proyecto principal se crea normalmente con
cargo new <name> - Por defecto, el binario principal es
src/main.rs - Los binarios adicionales se colocan en
src/bin/, cada archivo.rsse convierte en un binario independiente - Cada binario debe tener su propia función
main - Los binarios pueden usar el código de
src/lib.rsimportándolo como dependencia del mismo proyecto (reutilización de lógica)
Estructura
project_name/
├── Cargo.toml
├── src/
│ ├── main.rs # binario principal (opcional)
│ ├── lib.rs # biblioteca (opcional)
│ └── bin/
│ ├── script1.rs # binario adicional
│ ├── script2.rs # otro binario
Ejemplo
src/lib.rs
pub fn greet(name: &str) {
println!("Hello, {}", name);
}
src/bin/other.rs
use project_name::greet;
fn main() {
greet("John");
}
Compilar y ejecutar
# Listar binarios disponibles
cargo run --bin
# Compilar todos los binarios
cargo build [--release]
# Ejecutar un binario específico
cargo run --bin <bin-name>
# Compilar solo un binario
cargo build --release --bin <bin-name>