Cargo Profiles
Profiles provide a way to alter the compiler settings, influencing things like optimizations and debugging symbols.
Cargo has 4 built-in profiles
- dev
- release
- test
- bench
https://doc.rust-lang.org/cargo/reference/profiles.html
[profile.dev]
opt-level = 0
debug = true
debug-assertions = true
overflow-checks = true
incremental = true
[profile.release]
opt-level = 3
debug = false
debug-assertions = false
overflow-checks = false
incremental = false
Custom Profiles
//
[profile.release-panic]
inherits = 'release'
panic = 'abort'
The specifications are selected based on the type of build.
// dev profile is chosen
cargo build
//release profile is chosen
cargo build --release
//Custom Profile
cargo build --profile release-panic