One signed Docker image. Every feature compiled in. Free to run. docker pull crowkis/crowkis:latest

SDKs

Node.js / TypeScript SDK

A fully async client with TypeScript typings, buffered RESP3 frame parsing, and streaming via async iteration. Working in 60 seconds.

Install#

shell
npm install crowkis

Quick start#

typescript
import { CrowkisClient } from "@crowkis/client";

const cache = new CrowkisClient({
  host: "127.0.0.1",
  port: 6383,
  tenant: "demo",
  model: "gpt-4o",
});

const answer = await cache.getOrCompute(
  "Explain vector caches",
  async (query) => callLLM(query),
  { ttl: 3600 },
);

console.log(Buffer.isBuffer(answer) ? answer.toString() : answer);
cache.close();

Explicit semantic commands#

typescript
await cache.cset(
  "Explain vector caches",
  "Vector caches store embeddings so similar questions reuse answers.",
  { ttl: 3600 },
);

const cached = await cache.cget("Explain vector caches");
console.log(cached ? cached.toString() : "miss");

Streaming with async iteration#

Cached answers stream chunk by chunk through a regular for await loop:

typescript
for await (const chunk of cache.streamGetOrCompute(
  "Explain vector caches",
  async (query) => openAIStream(query),
  { ttl: 3600, chunkTokens: 4, delayMs: 20 },
)) {
  process.stdout.write(Buffer.isBuffer(chunk) ? chunk.toString() : String(chunk));
}

TypeScript support#

The package ships index.d.ts typings, and the RESP reader handles partial frames and RESP3 push frames, so long answers and live notifications both arrive intact.

The client ships sensible timeout, retry, and backoff defaults, matching the Python SDK. Run Crowkis on a trusted network segment or behind your service mesh — TLS termination belongs to your proxy, like most data-plane infrastructure.