valkeyree 0.1.5

An async Rust Valkyrie that speaks RESP β€” carrying your commands between realms of Valkey.
Documentation

πŸ¦€ Valkeyree

β€œThe messenger between realms.”

Valkeyree rides the async winds of Tokio, carrying your commands from Rust to Valkey in pure RESP form β€” fearless, fast, and forged in Rust. ⚑
A modern, async library for crafting, sending, and decoding Valkey commands β€” elegant in design and type-safe in execution.


πŸ“¦ Installation

cargo add valkeyree

πŸ“š Crates.io: https://crates.io/crates/valkeyree


✨ Features

  • ⚑ Async I/O powered by Tokio
  • 🧱 Low-level RESP2 encoder / decoder (RESP3 support planned)
  • 🧩 Command builders & typed result enums
  • πŸ” Authentication & ACL-ready
  • πŸš€ Designed for pipelining and future Valkey releases

🧠 Usage Example

use valkeyree::transport::{
    connection::ConnectionConfig,
    client::Client,
};
use valkeyree::types::command_kind::CommandKind;
use serde_json::Value;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Connection configuration
    let config = ConnectionConfig {
        address: "127.0.0.1:6379".to_string(),
        username: Some("myapp".to_string()),
        password: Some("password123".to_string()),
    };

    // Create a new client
    let client = Client::new(config).await?;

    // Send a SET command
    let set_command = CommandKind::Set("myclient".into(), Value::String("hey".into()));
    client.send(set_command).await?;

    // Send a GET command
    let get_command = CommandKind::Get("myclient".into());
    let result = client.send(get_command).await?;

    println!("Value: {:?}", result);

    Ok(())
}

πŸ“˜ Documentation

See the list of supported Valkey commands here:
πŸ‘‰ Supported Commands


βš–οΈ License

This project is licensed under the terms of the MIT License.


πŸ‘€ Developer

JP Mateo
Rust Developer & Network Automation Enthusiast
GitHub: j-p-d-e-v