asimov-valkey-module

Crates.ioasimov-valkey-module
lib.rsasimov-valkey-module
version0.1.0
created_at2025-11-06 07:11:30.188876+00
updated_at2025-11-06 07:11:30.188876+00
descriptionASIMOV module.
homepagehttps://github.com/asimov-modules
repositoryhttps://github.com/asimov-modules/asimov-valkey-module
max_upload_size
id1919179
size56,870
rust (github:asimov-modules:rust)

documentation

README

ASIMOV Valkey Module

License Package on Crates.io Documentation

ASIMOV module for Valkey / Redis database integration.

✨ Features

  • Connects to Valkey or Redis instances via [redis] crate
  • Scans, reads, and writes keys, values, and Pub/Sub messages
  • Supports .env configuration with ASIMOV Module utilities
  • CLI interface consistent with all ASIMOV ecosystem modules
  • Distributed as static binaries with zero runtime dependencies

🛠️ Prerequisites

  • Rust 1.85+ (2024 edition) if building from source code
  • Running Valkey or Redis server (default: redis://localhost:6379/0)

⬇️ Installation

Installation with the ASIMOV CLI

asimov module install valkey -v

Installation from Source Code

cargo install asimov-valkey-module

👉 Examples

🔍 Listing Keys and Values (Cataloger)

List keys or JSON values stored in Valkey.

# Output stored values (JSONL)
asimov-valkey-cataloger --output jsonl

# Output only keys / URLs
asimov-valkey-cataloger --output url

📡 Subscribing to Channels (Reader)

Subscribe to one or more Valkey channels and print incoming messages.

# Output messages as JSON lines
asimov-valkey-reader --output jsonl asimov:events

# Extract only "@id" URLs from JSON messages
asimov-valkey-reader --output url asimov:events

✏️ Publishing Messages (Writer)

Publish messages from stdin to Valkey Pub/Sub channels.

# Publish JSON objects
echo '{"@id":"https://example.com/r/1","k":"v"}' \
  | asimov-valkey-writer asimov:events

# Publish and also echo to stdout
echo '{"msg":"test"}' \
  | asimov-valkey-writer --union asimov:events

⚙ Configuration

Connection URL

You can configure the Valkey connection via environment variable or .env file.

Example .env file:

ASIMOV_VALKEY_URL=redis://127.0.0.1:6379/1

Example inline:

ASIMOV_VALKEY_URL="redis://127.0.0.1:6379/1" asimov-valkey-cataloger

📚 Reference

Installed Binaries

Binary Description
asimov-valkey-cataloger Scans Valkey and prints stored keys or values
asimov-valkey-reader Subscribes to Valkey channels and prints messages
asimov-valkey-writer Publishes messages from stdin to Valkey channels

asimov-valkey-cataloger

Usage: asimov-valkey-cataloger [OPTIONS]

Options:
  -d, --debug            Enable debugging output
      --license          Show license information
  -v, --verbose...       Enable verbose output (may be repeated for more verbosity)
  -V, --version          Print version information
  -o, --output <FORMAT>  Specify the output format [jsonl, url] [default: jsonl] [possible values: jsonl, url]
  -h, --help             Print help

asimov-valkey-reader

Usage: asimov-valkey-reader [OPTIONS] <CHANNELS>...

Arguments:
  <CHANNELS>...  Channels to subscribe to

Options:
  -d, --debug            Enable debugging output
      --license          Show license information
  -v, --verbose...       Enable verbose output (may be repeated for more verbosity)
  -V, --version          Print version information
  -o, --output <FORMAT>  Specify the output format [jsonl, url] [default: jsonl] [possible values: jsonl, url]
  -h, --help             Print help

asimov-valkey-writer

Usage: asimov-valkey-writer [OPTIONS] <CHANNELS>...

Arguments:
  <CHANNELS>...  Channels to publish to

Options:
  -U, --union            Copy stdin to stdout
  -d, --debug            Enable debugging output
      --license          Show license information
  -v, --verbose...       Enable verbose output (repeat for more verbosity)
  -V, --version          Print version information
  -h, --help             Print help

👨‍💻 Development

git clone https://github.com/asimov-modules/asimov-valkey-module.git

Share on X Share on Reddit Share on Hacker News Share on Facebook Share on LinkedIn

Commit count: 0

cargo fmt