embedded-redis

Crates.ioembedded-redis
lib.rsembedded-redis
version0.7.3
sourcesrc
created_at2022-03-28 16:44:55.0346
updated_at2024-02-10 16:52:56.601171
descriptionA no_std Redis client
homepage
repositoryhttps://github.com/pegasus-aero/rt-embedded-redis
max_upload_size
id557994
size294,338
Marius Meißner (marius-meissner)

documentation

https://docs.rs/embedded-redis

README

Redis Client for no_std

License License Crates.io Actions Status

This crate offers a non-blocking Redis Client for no_std targets. Both RESP2 and RESP3 protocol are supported.

Documentation:

Example

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();

Development

Any form of support is greatly appreciated. Feel free to create issues and PRs. See DEVELOPMENT for more details.

Benchmarks

The following command can be used to run the benchmarks.

A local Redis instance is required.

cargo bench --features benchmarks
System Async publish Sync publish
Desktop *¹ 291,800 msg / s 70,025 msg / s
Raspberry 4B *¹ 59,744 msg / s 10,641 msg / s

*¹ 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

License

Licensed under either of

Each contributor agrees that his/her contribution covers both licenses.

Commit count: 52

cargo fmt