v0.8.0
Added
- Stored procedure support with two-tier API:
client.call_procedure("dbo.MyProc", &[&1i32])— simple convenience for input-only callsclient.procedure("dbo.MyProc")?.input("@a", &val).output_int("@result").execute()— full builder with named input/output parametersProcedureResulttype with return value, rows affected, output parameters, and result setsProcedureBuilderwith typed output methods:output_int,output_bigint,output_nvarchar,output_bit,output_float,output_decimal,output_raw- Works in both
ReadyandInTransactionstates - All procedure names validated to prevent SQL injection
- Feature scope, API design, and documentation structure informed by PR #71 from @c5soft
- SQL Browser instance resolution for named instances (
host\SQLEXPRESS): - Pool
test_on_checkinhealth check — connections returned to the pool are now health-checked before reuse when enabled (closes #29) ProcedureResultandResultSetnow implementClone- Added
col_type: u8field and#[non_exhaustive]to protocol-levelReturnValuestruct
Fixed
- Mock TLS cross-platform race — fixed
TlsPreloginWrapperhandshake-to-passthrough race condition that caused test failures on macOS and Windows (closes #70). Root cause: client sends raw TLS before server-side wrapper transitions from PreLogin framing - RUSTSEC-2026-0097 (rand 0.8.5 unsoundness) — added ignore with justification (log feature not enabled, blocked on upstream rsa 0.10 stable)
- Resolved stale advisory ignore for RUSTSEC-2026-0066 (fixed by testcontainers 0.27 bump)
- Updated RUSTSEC-2025-0134 ignore reason (rustls-pemfile is a direct dep of mssql-auth, not just transitive via bollard)
Changed
- Azure SDK bump: azure_core/azure_identity 0.30 → 0.34, azure_security_keyvault_keys 0.9 → 0.13
ClientCertificateCredential::new()now takesSecretBytesinstead ofSecret- Key Vault
unwrap_key()/sign()/verify()now requirekey_versionas a method parameter
- Bumped dev dependencies: testcontainers 0.25 → 0.27, criterion 0.7 → 0.8, rustls 0.23.37 → 0.23.38, tokio 1.51.0 → 1.51.1
- Bumped CI actions: codecov-action v5 → v6, action-gh-release v2 → v3, github-script v8 → v9
- Extracted
validate_identifier()andvalidate_qualified_identifier()to sharedvalidationmodule
What's Changed
Full Changelog: v0.7.0...v0.8.0