mysql_async uses Cargo features to manage dependencies like TLS backends and compression. By default, flate2/zlib and derive are enabled.
Common Feature Sets
minimal: Only enables flate2/zlib. Use this for a lightweight setup.minimal-rust: Same as minimal but uses a Rust-based flate2 backend.default: Enables flate2/zlib and derive.default-rustls: Default features plus TLS via rustls/aws-lc-rs.default-rustls-ring: Default features plus TLS via rustls/ring.native-tls-tls: Enables TLS via native-tls.rustls-tls: Enables rustls TLS backend without a provider. You must also enable a provider like ring or aws-lc-rs.tracing: Enables instrumentation. query, prepare, and exec are logged at INFO level; other operations like get_conn are at DEBUG level.binlog: Enables binlog-related functionality.
Proxied Features (from mysql_common)
These features enable specific type support via the underlying mysql_common crate:
derivechronotimebigdecimalrust_decimalfrunk
# Example: Minimal setup with native-tls
[dependencies]
mysql_async = { version = "*", default-features = false, features = ["minimal", "native-tls-tls"] }
# Example: Rustls with ring provider
[dependencies]
mysql_async = { version = "*", default-features = false, features = ["minimal-rust", "rustls-tls", "ring"] }