#redis #networking #嵌入式数据库

无需 std embedded-redis

一个无需 std 的 Redis 客户端

13 个不稳定版本 (6 个破坏性更新)

0.7.3 2024年2月10日
0.6.0 2023年7月4日
0.5.0 2023年2月9日
0.4.0 2022年11月10日
0.1.1 2022年3月28日

#593 in 数据库接口

Download history 63/week @ 2024-07-02

每月80次下载

MIT/Apache

280KB
6K SLoC

no_std Redis客户端

License License Crates.io Actions Status

此crate提供适用于no_std目标的非阻塞Redis客户端。支持RESP2和RESP3协议。

文档

示例

use core::str::FromStr;
use embedded_nal::SocketAddr;
use std_embedded_nal::Stack;
use std_embedded_time::StandardClock;
use embedded_redis::network::ConnectionHandler;

let mut stack = Stack::default();
let clock = StandardClock::default();

let server_address = SocketAddr::from_str("127.0.0.1:6379").unwrap();
let mut connection_handler = ConnectionHandler::resp2(server_address);
let client = connection_handler.connect(&mut stack, Some(&clock)).unwrap();

let future = client.set("key", "value").unwrap();
let response = future.wait().unwrap();

开发

非常感谢任何形式的支持。请随意创建问题和PR。有关更多详细信息,请参阅DEVELOPMENT

基准测试

以下命令可以用于运行基准测试。

需要一个本地Redis实例。

cargo bench --features benchmarks
系统 异步发布 同步发布
桌面 *¹ 291,800 条消息/秒 70,025 条消息/秒
树莓派4B *¹ 59,744 条消息/秒 10,641 条消息/秒

*¹ Rust 1.67.0-nightly, AMD Ryzen 9, DDR4, Ubuntu 22.02, Redis v6.0.16

*¹ Rust 1.67.0-nightly, Raspberry Pi OS 10, Redis v7.0.5

许可证

许可协议为以下之一

每位贡献者同意其贡献涵盖这两个许可证。

依赖项

~5MB
~84K SLoC