rsmc-tokio

This crate aims to provide a full-features memcached client for the Tokio async runtime using rsmc-core.

This is still an early implementation, so expect some bugs and missing features. If you find something is wrong, please open a GitHub issue (or, even better, a PR to fix the issue!)

Expect some breaking changes before a 1.0 release.

Features:

Quick start

```rust use flate2::Compression; use rsmccore::{ client::{ClientConfig, Pool}, zlib::ZlibCompressor, }; use rsmctokio::TokioConnection;

// Consistent hashing is used to distribute keys // evenly across a memcached cluster. let memcached_servers = vec![ "localhost:11211", "localhost:11212", "localhost:11213", ];

// Use ClientConfig::new_uncompressed() if compression is not desired. // You can disable the zlib feature (on by default) to disable it entirely. let cfg = ClientConfig::new(memcached_servers, ZlibCompressor::default());

// Create a connection pool with (at most) 16 connections per server. let pool = Pool::::new(cfg, 16); let mut client = pool.get().await.unwrap();

client.set(b"hello", b"world", 300).await.unwrap(); let response: Option> = client.get(b"hello").await.unwrap(); // "world" ```