glide-dev
Valkey GLIDE Contributor Reference
Routing
- Rust core, connection management, protocol -> Core Architecture
- Python bindings, PyO3, CFFI -> Language Bindings
- Java bindings, JNI -> Language Bindings
- Node.js bindings, NAPI -> Language Bindings
- Go bindings, CGO, FFI -> Language Bindings
- PubSub synchronizer, subscription management -> PubSub Internals
- Cluster topology, slot mapping, failover -> Cluster Internals
- Adding a new command -> Adding Commands
- Build environment, prerequisites, testing, test utils, cluster setup -> Build & Test
Repository Structure
glide-core/ # Rust core - connection, protocol, clustering, PubSub sync
src/client/ # Client implementation, connection pool
src/pubsub/ # PubSub synchronizer (desired vs actual state)
src/protobuf/ # Protobuf definitions for IPC
ffi/ # C FFI layer for Python sync and Go
logger_core/ # Rust logging infrastructure
python/ # Python wrappers (async via PyO3, sync via CFFI)
java/ # Java wrappers via JNI
node/ # Node.js wrappers via NAPI v2
go/ # Go wrappers via CGO + FFI
utils/ # Test utilities, cluster management scripts
benchmarks/ # Performance benchmarks
Core Architecture
| Topic | Reference |
|---|---|
| Three-layer design, FFI mechanisms, module structure, runtime model, command flow, key structs | core-architecture |
| Connection model: multiplexing, inflight limiting, timeouts, reconnection, lazy connect, read-only mode | connection-internals |
| PubSub synchronizer: desired vs actual state, reconciliation loop, resubscription | pubsub-internals |
| Cluster topology: slot map, node discovery, MOVED/ASK handling, failover detection | cluster-internals |
Language Bindings
| Language | Mechanism | Native Lib | IPC |
|---|---|---|---|
| Python async | PyO3 | python/glide-async/ |
Unix socket |
| Python sync | CFFI | ffi/ |
FFI calls |
| Java | JNI | java/src/lib.rs |
JNI calls |
| Node.js | NAPI v2 | node/rust-client/ |
Unix socket |
| Go | CGO | ffi/ |
FFI calls |
| Topic | Reference |
|---|---|
| Adding commands: protobuf definition, Rust handler, language wrappers, tests | adding-commands |
| Build and test for each language | build-and-test |
More from avifenesh/valkey-skills
valkey
Use when building apps with Valkey - caching, sessions, queues, locks, rate-limiting, leaderboards, counters, pub-sub, streams, scripting. Covers IFEQ/DELIFEQ, hash field TTL, COMMANDLOG. Not for server internals (valkey-dev) or ops (valkey-ops).
5valkey-dev
Use when contributing to the Valkey server - C internals, event loop, commands, data structures, cluster, replication, RDB/AOF, memory, threading, modules, Lua, RESP, tests. Not for app development (valkey) or ops (valkey-ops).
5valkey-ops
Use when deploying, configuring, monitoring, or troubleshooting self-hosted Valkey. Covers Sentinel, cluster, persistence, replication, security, Kubernetes, performance tuning. Not for app development (valkey) or server internals (valkey-dev).
5valkey-ecosystem
Use when evaluating the Valkey ecosystem - client libraries, modules (JSON, Bloom, Search), managed services (AWS, GCP, Aiven), monitoring tools, frameworks (Spring, Django, Rails), Docker/Kubernetes deployment, CI/CD patterns, migration from Redis, and developer tooling.
5glide-mq
Use when building message queues with glide-mq. Covers queue setup, producer/consumer patterns, job scheduling, workflows, batch processing, streaming, and suspend/resume. Not for migrating from BullMQ (migrate-bullmq) or Bee-Queue (migrate-bee).
4valkey-glide
Router for Valkey GLIDE per-language skills. Use when you need to find the right language-specific GLIDE skill or migration skill. Not for GLIDE library internals or contributing to GLIDE source code - use glide-dev instead.
4