| Crates.io | rsmc-tokio |
| lib.rs | rsmc-tokio |
| version | 0.4.0 |
| created_at | 2021-04-08 23:04:17.891172+00 |
| updated_at | 2021-12-20 20:34:07.148666+00 |
| description | An async memcached client for Tokio |
| homepage | |
| repository | https://github.com/crestonbunch/rsmc |
| max_upload_size | |
| id | 381068 |
| size | 11,285 |
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:
use flate2::Compression;
use rsmc_core::{
client::{ClientConfig, Pool},
zlib::ZlibCompressor,
};
use rsmc_tokio::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::<TokioConnection, _>::new(cfg, 16);
let mut client = pool.get().await.unwrap();
client.set(b"hello", b"world", 300).await.unwrap();
let response: Option<Vec<u8>> = client.get(b"hello").await.unwrap(); // "world"