10个版本

0.4.5-beta.22023年6月21日
0.4.4 2020年5月12日
0.3.0 2020年5月11日
0.2.0 2020年5月10日
0.1.0 2020年5月9日

#55 in 缓存

每月26次下载

MIT/Apache

63KB
1.5K SLoC

Memcached

基于Rust和Async-std构建的异步memcached客户端


功能

此项目仍在开发中。以下带有勾选的功能是支持的。

如果您关心未实现的功能,请告诉我,我将尽快完成编写。

  • 客户端支持的方法
    • add
    • append
    • cas
    • decrement
    • delete
    • flush
    • flush_with_delay
    • get
    • gets
    • increment
    • prepend
    • replace
    • set
    • stats
    • touch
    • version
  • 支持的协议
    • 二进制协议
    • ASCII协议
  • 所有memcached支持的连接
    • TCP连接
    • TLS连接
    • UDP连接
    • UNIX域套接字连接
  • 支持编码 Serde
    • 当然包括但不限于 &[u8] / Vec<u8>
  • 支持使用自定义密钥哈希算法的Memcached集群

基本用法

此示例使用async-std并启用了一些可选功能,因此您的Cargo.toml可能看起来像这样

[dependencies]
async-std = { version = "1", features = ["attributes"] }
memcached = "*"

然后是代码

#[async_std::test]
async fn it_works() -> memcached::Result<()> {
    let client = memcached::connect("memcache://127.0.0.1:12345")?;
    client.set("abc", "hello", 100).await?;
    let t: Option<String> = client.get("abc").await?;
    assert_eq!(t, Some("hello".to_owned()));
    Ok(())
}

有关更多用法,请参阅文档,客户端的每个方法都有示例。

常见问题解答

我应该在生产中使用这个吗?

最好不要。

此项目需要大量细节来完成。但如果您愿意,可以尝试使用它。

许可证

根据您的选择,许可如下

贡献

除非您明确声明,否则您有意提交以包含在作品中的任何贡献,根据Apache-2.0许可证定义,应按上述方式双重许可,而不附加任何额外条款或条件

依赖项

~11–24MB
~340K SLoC