jaemk / cached

Rust cache structures and easy function memoization
MIT License
1.57k stars 95 forks source link

Rustls support for Redis #231

Open rbozan opened 2 weeks ago

rbozan commented 2 weeks ago

Hi, using cached and Redis now forces you to have OpenSSL. An alternative to OpenSSL is Rustls, which does not need any extra library.

I suggest something like this:

 redis_connection_manager = ["redis_store", "redis/connection-manager"]
 redis_async_std = ["redis_store", "async", "redis/aio", "redis/async-std-comp", "redis/tls", "redis/async-std-tls-comp"]
-redis_tokio = ["redis_store", "async", "redis/aio", "redis/tokio-comp", "redis/tls", "redis/tokio-native-tls-comp"]
+redis_tokio = ["redis_store", "async", "redis/aio", "redis/tokio-comp"]
+redis_tokio_native-tls = ["redis/tokio-native-tls-comp"]
+redis_tokio_rustls = ["redis/tokio-rustls-comp"]
 redis_ahash = ["redis_store", "redis/ahash"]
 disk_store = ["sled", "serde", "rmp-serde", "directories"]
 wasm = []

The user has to supply that he wants redis_tokio and either redis_tokio_native-tls or redis_tokio_rustls. This way he/she can choose. But an extra feature flag could also be useful.