#memcached #async #memcache #tokio

yamemcache

另一个memcached客户端库

3个版本

0.0.5 2023年4月12日
0.0.4 2022年12月7日
0.0.3 2022年12月1日
0.0.2 2022年11月30日
0.0.1 2022年11月29日

#198 in 缓存

每月下载量22次

MIT许可证

25KB
523 代码行

这个crate存在,因为我需要一个异步(运行时不依赖或基于tokio)的Rust memcached客户端,在反序列化时使用元数据。我知道的当前实现都不允许我这样做

  • rsmc: tokio 1.x,无法访问元数据
  • memcached: async-std,无法访问元数据
  • memcache: 同步,可以访问元数据
  • memcache-async: futures,无法访问元数据
  • async-memcached: tokio 0.2,可以访问元数据
  • memcached-rs: 同步,可以访问元数据
  • vmemcached: tokio 1.x,无法访问元数据

它可能会在某处崩溃。它不是生产就绪的。


lib.rs:

另一个memcached客户端

这是另一个memcached客户端,因为同时没有现有的任何客户端

  • 使用新的tokio版本(1.x)
  • 在访问数据时允许访问标志

示例用法

#[tokio::main]
async fn main() {
  let Ok(stream) = tokio::net::TcpStream::connect("127.0.0.1:11211").await
    .map(tokio::io::BufStream::new) else {
    println!("Unable to connect");
    return;
  };

  let mut client = yamemcache::Client::new(stream);

  if let Ok(x) = client.get("hello").await {
    match x {
      Some(x) => println!("Received data: {}", String::from_utf8_lossy(&x.data)),
      None => println!("No data received"),
    }
  }
}

依赖项

~2.2–3.5MB
~51K SLoC