gitwtfhub

wtf is redis?

perryts/redis — explained in plain English

Analysis updated 2026-05-18

22TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TL;DR

A pure TypeScript Redis and Valkey driver with no native dependencies that runs on Node.js, Bun, and compiles to a native binary via the Perry compiler.

Mindmap

mindmap
  root((repo))
    What it does
      Speaks Redis wire protocol
      No native addons
      Compiles to native binary
    Tech stack
      TypeScript
      Node.js
      Bun
      Perry LLVM compiler
    Use cases
      Connect app to Redis
      Build native Redis clients
      Use Redis Cluster
    Audience
      Backend developers
    Features
      RESP2 and RESP3
      TLS and auth
      Pooling and pipelining

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Connect a Node.js or Bun application to Redis or Valkey without native dependencies.

REASON 2

Build a standalone native binary that talks to Redis using the Perry compiler.

REASON 3

Run pipelined batches of Redis commands in a single network round trip.

REASON 4

Connect to a Redis Cluster with automatic slot routing across nodes.

What's in the stack?

TypeScriptNode.jsBunRedisLLVM

How it stacks up

perryts/redisaerdelan/housand-domaintoolmatrixalibaba/webmcp-nexus
Stars222222
LanguageTypeScriptTypeScriptTypeScript
Setup difficultymoderateeasymoderate
Complexity3/52/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · moderate Time to first run · 30min

Live server tests require a running Redis instance, but basic usage only needs the package installed.

MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.

Wtf does this do

This repository is a Redis and Valkey database driver written entirely in TypeScript, meaning it talks to a Redis server using the same network protocol Redis itself uses, without relying on any native code addons or bindings written in other languages. Because it avoids those native dependencies, it runs without changes on both Node.js and Bun, and it also compiles into a standalone native program using a separate project called Perry, a compiler that turns a restricted subset of TypeScript into a real executable through LLVM, a widely used compiler toolchain. That means the same source code can either run inside a normal JavaScript program or be turned into a small program with no JavaScript engine involved at all. The driver supports both major versions of the Redis wire protocol, RESP2 and RESP3, and automatically falls back to the older version if the server does not support the newer one. It handles authentication, including simple passwords and Redis's access control list system, and supports encrypted connections over TLS. Other supported features include pipelining several commands together in one network round trip, publish and subscribe messaging, transactions using MULTI and EXEC, running Lua scripts on the server with automatic retry if the script is not yet cached, client side caching with invalidation notifications, and Redis Cluster support with correct routing between cluster nodes. A connection pool is included for managing many connections efficiently, along with support for blocking commands, ones that wait for new data, in a way that plays well with that pool instead of tying up a connection indefinitely. The library can be installed with any of the common JavaScript package managers, and connections can be configured either with plain option objects or with standard Redis connection URLs and environment variables. It is released under the MIT license and is one of a small family of similar drivers the same author has built for other databases like Postgres and MySQL, all designed around the same constraints needed to compile with Perry.

Yoink these prompts

Prompt 1
Show me how to connect to a Redis Cluster using @perryts/redis.
Prompt 2
Help me set up a connection pool with this library for a Node.js app.
Prompt 3
Explain how to run a Lua script with automatic NOSCRIPT retry using this driver.
Prompt 4
Walk me through enabling client side caching and handling invalidation events.

Frequently asked questions

wtf is redis?

A pure TypeScript Redis and Valkey driver with no native dependencies that runs on Node.js, Bun, and compiles to a native binary via the Perry compiler.

What language is redis written in?

Mainly TypeScript. The stack also includes TypeScript, Node.js, Bun.

What license does redis use?

MIT license: use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is redis to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is redis for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.