/redismodule-rs

Rust API for Redis Modules API

Primary LanguageRustBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

license GitHub issues macos CircleCI

redismodule-rs

This crate provides an idiomatic Rust API for the Redis Modules API. It allows writing Redis modules in Rust, without needing to use raw pointers or unsafe code.

Running the example module

  1. Install Rust
  2. Install Redis, most likely using your favorite package manager (Homebrew on Mac, APT or YUM on Linux)
  3. Run cargo build --example hello
  4. Start a redis server with the hello module
    • Linux: redis-server --loadmodule ./target/debug/examples/libhello.so
    • Mac: redis-server --loadmodule ./target/debug/examples/libhello.dylib
  5. Open a Redis 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 Redis Modules API, while preserving the API's basic concepts. Therefore, following the Redis Modules API documentation will be mostly relevant here as well.

Redis Modules based on this crate

The following are some modules that are built on this crate:

Several member of the community have written their own modules based on this.