| 1 | /** |
| 2 | * Cloud-agnostic Redis runtime client. Fly and Railway resources bind |
| 3 | * `REDIS_URL`; this module speaks RESP over that URL. Import from |
| 4 | * `alchemy/Redis`. |
| 5 | * |
| 6 | * The codec is a complete RESP2 parser (plus RESP3 types) reimplemented |
| 7 | * in TypeScript after the official spec and the algorithm in |
| 8 | * `node-redis-parser`. There is no ioredis / node-redis dependency. |
| 9 | * |
| 10 | * Bindings stay on the cloud (`Fly.ReadWriteRedis`, |
| 11 | * `Railway.ReadWriteRedis`). Those layers call {@link makeReadWrite} |
| 12 | * so the RESP client is not duplicated. |
| 13 | * |
| 14 | * @example |
| 15 | * ```typescript |
| 16 | * import * as Redis from "alchemy/Redis"; |
| 17 | * |
| 18 | * const cache = Redis.makeReadWrite(url); |
| 19 | * yield* cache.set("marker", "hello"); |
| 20 | * const value = yield* cache.get("marker"); |
| 21 | * const custom = yield* cache.send("ECHO", ["hi"]); |
| 22 | * ``` |
| 23 | */ |
| 24 | export * from "./Client.ts"; |
| 25 | export * from "./Errors.ts"; |
| 26 | export * from "./Protocol.ts"; |
| 27 | export * from "./Resp.ts"; |