# redi-rs (or redirs)
### redi-rs is a Lightweight Redis client with connection pooling written in Rust and 100% memory safe
redi-rs is a Redis client written in Rust. It is a lightweight client with connection pooling and 100% memory safe.
You can use it in your Rust project to connect to Redis and perform operations.
## Features
- [x] Connection pooling
# To Do
- [ ] Typed commands (`pool.setex("foo", 10, "bar")`, `pool.get("foo") or pool.hset("foo", "bar", "baz")`
- [ ] TLS support
- [ ] Redis Cluster support
- [ ] Redis Streams support
- [ ] Redis Pub/Sub support
## Usage
Add this to your Cargo.toml:
```toml
[dependencies]
redi-rs = "0.1.0-alpha.0"
```
## Example
```rust
use std::net::SocketAddr;
use std::str::FromStr;
use redi_rs::RedisPool;
#[tokio::main]
async fn main() -> Result<(), Box> {
let mut pool = RedisPool::from_str("localhost:6379").unwrap();
// Or from SocketAddr
// let mut pool = RedisPool::from(SocketAddr::from(([127, 0, 0, 1], 6379)));
pool.max_connections(10).establish_pool().await?;
pool.send_command("SET foo bar").await?;
Ok(())
}
```
More examples can be found in the [examples](examples) directory.
## License
redi-rs is licensed under the MIT license. See [LICENSE](LICENSE) for more information.
## Contributing
Open an issue or a pull request.