Open Source — Projects I Maintain
I build and maintain Valkey-native packages for the Node.js ecosystem — the client-stack building blocks that let Node.js applications talk to Valkey without a single Redis-branded dependency in the tree.
Why a Valkey-Native Ecosystem?
Valkey is the Linux Foundation fork of Redis, created after Redis changed its license in 2024. Its wire protocol (RESP) and Pub/Sub commands are byte-for-byte identical to Redis — but the Node.js ecosystem around it was not. Core client infrastructure (parsers, error models, Socket.IO adapters) still carried Redis naming, Redis dependencies, and Redis-controlled publishing.
A Valkey ecosystem should not have its core infrastructure owned by Redis-branded packages it doesn't control. So I ported the battle-tested implementations — keeping every proven code path intact — and re-targeted them for Valkey.
The Stack
The packages form a layered client stack. I created and maintain the two foundation layers solo; the Socket.IO scaling layer was built with the Stalwart Team for the Valkey Hackathon conducted by React Hyderabad.
Application code
└── socket.io-valkey-adapter ← cross-instance broadcast (Stalwart Team · Valkey Hackathon by React Hyderabad)
└── Valkey client (iovalkey)
└── valkey-parser ← RESP wire-protocol decoder (solo project)
└── valkey-errors ← shared failure identity (solo project)valkey-errors
v1.0.1 · MIT · Solo project
A shared error model for the whole stack — five classes, zero dependencies, 59 lines. Makes instanceof the failure-handling contract across every layer.
npm · GitHub · Deep dive →
valkey-parser
v1.0.0 · MIT · Solo project
The RESP wire-protocol decoder — raw TCP bytes in, JavaScript values out. Zero-copy fast path, adaptive buffer pool, built for millions of replies per second.
npm · GitHub · Deep dive →
socket.io-valkey-adapter
v0.1.1 · MIT · Stalwart Team · Valkey Hackathon by React Hyderabad
The horizontal-scaling layer for Socket.IO on Valkey Pub/Sub. 137 tests passing against standalone Valkey 8.
npm · GitHub · Deep dive →
The Porting Philosophy
Every package follows the same discipline:
- Don't rewrite what's proven. The upstream implementations (
redis-errors,node-redis-parser,@socket.io/redis-adapter) carry years of production hardening. A file-by-file diff against upstream confirms zero functional differences — every condition, loop, and wire format is unchanged. - Remove all Redis branding. A Valkey ecosystem package should not depend on or advertise Redis-named modules.
RedisErrorbecomesValkeyError;redis-errorsbecomesvalkey-errors. - Test against real Valkey. The adapter's full suite runs against standalone Valkey 8 in CI on every push.
The result: teams migrating off Redis keep the exact architecture they trust, with a clean, Redis-free dependency tree and zero license risk.
Contributions to Major Libraries
I also contribute upstream — merged pull requests in Node.js core, Axios, React Redux, Nodemailer, Tailwind CSS, and Valkey's official Node.js client (iovalkey). See the contributions page for the full stories and PRs.
Read the Deep-Dives
Start at the bottom of the stack and work up: