Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

dahomey-technologies/rustis

Repository files navigation

An asynchronous Redis client for Rust.

Crate docs.rs Build License libs.tech recommends

Documentation

Official Documentation

Philosophy

  • Low allocations
  • Full async library
  • Lock free implementation
  • Rust idiomatic API
  • Multiplexing as a core feature

Features

Protocol Compatibility

Rustis uses the RESP3 protocol exclusively.

The HELLO 3 command is automatically sent when establishing a connection.
Therefore, your Redis server must support RESP3 (Redis ≥6.0+ with RESP3 enabled).

If you use Redis 5 or older, or your Redis 6+ server still defaults to RESP2,
Rustis will not work.

To verify your server supports RESP3:

redis-cli --raw HELLO 3

If you see server info (role, version, etc.), you're good to go. If you get an error, upgrade Redis.

Basic Usage

use rustis::{
 client::Client, 
 commands::{FlushingMode, ServerCommands, StringCommands},
 Result,
};
#[tokio::main]
async fn main() -> Result<()> {
 // Connect the client to a Redis server from its IP and port
 let client = Client::connect("127.0.0.1:6379").await?;
 
 // Flush all existing data in Redis
 client.flushdb(FlushingMode::Sync).await?;
 // sends the command SET to Redis. This command is defined in the StringCommands trait
 client.set("key", "value").await?;
 
 // sends the command GET to Redis. This command is defined in the StringCommands trait
 let value: String = client.get("key").await?;
 println!("value: {value:?}");
 Ok(())
}

Tests

  1. From the redis directory, run docker_up.sh or docker_up.cmd
  2. run cargo test --features pool,tokio-rustls,json,client-cache (Tokio runtime)
  3. run cargo test --no-default-features --features async-std-runtime,async-std-native-tls,json,client-cache (async-std runtime)
  4. run cargo fmt --all -- --check

Benchmarks

  1. From the redis directory, run docker_up.sh or docker_up.cmd
  2. run cargo bench

AltStyle によって変換されたページ (->オリジナル) /