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