Skip to content

Default to rustls and enable couchdb backend by default#16

Merged
SeriousBug merged 4 commits into
mainfrom
claude/enable-rust-features-MYKcd
May 11, 2026
Merged

Default to rustls and enable couchdb backend by default#16
SeriousBug merged 4 commits into
mainfrom
claude/enable-rust-features-MYKcd

Conversation

@SeriousBug
Copy link
Copy Markdown
Owner

@SeriousBug SeriousBug commented May 11, 2026

Summary

  • Switch the default TLS implementation for backend-sqlite, backend-couchdb, and backend-redis to rustls, so a stock build no longer needs a system OpenSSL / libssl-dev.
  • Enable backend-couchdb in the default feature set (pure Rust now that it uses rustls; negligible binary-size cost).
  • Leave backend-dynamodb opt-in. Enabling it pulls in the AWS SDK (DynamoDB + STS/SSO credential SDKs) and adds ~13 MB to a stripped release binary, which is too much to enable for everyone by default. Documented this in the Readme.

Binary size check (release + stripped, examples/basic)

Backends enabled Size
redis + in-memory + sqlite + couchdb 9.25 MB
above + dynamodb 22.30 MB

Measured with the default release profile (no LTO). With lto = "fat" the delta would likely shrink, but it's still a substantial dep, so opt-in is the safer default.

Notes / trade-offs

  • The sqlite/couchdb/redis TLS switches only affect the underlying HTTP/TLS stack (sqlx runtime feature, reqwest TLS backend, redis tokio-tls comp). sqlite itself doesn't even use TLS — the feature just selects which TLS impl sqlx's tokio runtime links against.
  • Users who want native-tls can still opt in explicitly via backend-sqlite-native-tls / backend-couchdb-native-tls. The Readme has been updated to reflect the new defaults.

Test plan

  • cargo check with all default backends enabled
  • cargo check with only redis + rustls comp
  • cargo build --release size comparison with and without dynamodb
  • CI passes

claude added 4 commits May 11, 2026 04:52
Switches the default TLS implementation for the sqlite and couchdb
backends to rustls so out-of-the-box builds do not require a system
OpenSSL. Also enables backend-couchdb and backend-dynamodb in the
default feature set; both are pure-Rust now that they use rustls.
@SeriousBug SeriousBug changed the title Default to rustls and enable couchdb + dynamodb backends Default to rustls and enable couchdb backend by default May 11, 2026
@SeriousBug SeriousBug merged commit 48a538b into main May 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants