#valkey #api-bindings #plugin #raw-pointers

valkey-module

A toolkit for building valkey modules in Rust

1 unstable release

99.99.99 Apr 28, 2024
2.0.7 Apr 28, 2024
0.1.0 Apr 30, 2024

#1509 in Database interfaces

Download history 107/week @ 2024-04-22 198/week @ 2024-04-29

305 downloads per month

BSD-3-Clause

260KB
6K SLoC

license Releases crates.io docs CircleCI

valkeymodule-rs

This crate provides an idiomatic Rust API for the Valkey Modules API. It allows writing Valkey modules in Rust, without needing to use raw pointers or unsafe code. See here for the most recent API documentation.

This repo was forked from redismodule-rs. We appreciate the contributions of the original authors.

Running the example module

  1. Install Rust
  2. Install Valkey, most likely using your favorite package manager (Homebrew on Mac, APT or YUM on Linux)
  3. Run cargo build --example hello
  4. Start a valkey server with the hello module
    • Linux: valkey-server --loadmodule ./target/debug/examples/libhello.so
    • Mac: valkey-server --loadmodule ./target/debug/examples/libhello.dylib
  5. Open a valkey-cli, and run HELLO.MUL 31 11.

Writing your own module

See the examples directory for some sample modules.

This crate tries to provide high-level wrappers around the standard Valkey Modules API, while preserving the API's basic concepts. Therefore, following the Valkeyi Modules API documentation will be mostly relevant here as well.

Dependencies

~7–12MB
~230K SLoC