Rezo
Rezo is an enterprise-grade HTTP client for Node.js 22+ and universal JavaScript runtimes. It provides native HTTP/2, intelligent cookie management, multiple adapters, streaming, proxy rotation, browser fingerprint stealth, a built-in crawler, and more.
Why Rezo?
Modern applications need more than a basic HTTP client. Rezo provides a complete networking toolkit with a clean, intuitive API.
Multi-Adapter Architecture
Rezo ships with six adapters so it works everywhere your code runs:
- HTTP — Node.js native
http/httpsmodules (default for Node.js and Bun) - HTTP/2 — Native HTTP/2 with multiplexed streams
- Fetch — Universal Fetch API for browsers, Deno, and edge runtimes
- XHR — XMLHttpRequest for legacy browser compatibility
- cURL — Shell-based adapter using the system
curlbinary - React Native — Purpose-built adapter for React Native
Cross-Platform
One package, every runtime:
- Node.js 22+ — Full feature set with HTTP/2, streams, and file I/O
- Bun — Native support, ideal for stealth TLS fingerprinting
- Deno — Works out of the box with Fetch adapter
- Browsers — Automatic adapter selection (Fetch or XHR)
- React Native — Dedicated adapter and platform entry point
- Edge / Workers — Cloudflare Workers, Vercel Edge, and other edge runtimes
Enterprise Features
- Intelligent Cookie Jar — Automatic per-domain cookie persistence with file serialization (JSON or Netscape format)
- Proxy Management — HTTP, HTTPS, SOCKS4, and SOCKS5 proxies with pool rotation, cooldown, and health checks
- Stealth Mode — 18 browser profiles with TLS fingerprinting, realistic headers, and
sec-ch-ua/sec-fetch-*generation - Built-in Crawler — Full site crawling with configurable depth, domain rules, and session management
- Wget Clone — Recursive site mirroring from the command line or programmatic API
- Request Queue — Concurrency limiting, rate limiting, domain-aware throttling, and priority scheduling
- Streaming — First-class stream, download, and upload responses with progress events
- Response & DNS Caching — In-memory caching with configurable TTL for both HTTP responses and DNS lookups
- Hooks & Interceptors — Full lifecycle hooks (
init,beforeRequest,afterResponse,beforeError,beforeRedirect) plus request/response interceptors
Quick Example
import rezo from 'rezo';
// GET request
const { data, status } = await rezo.get('https://api.example.com/users');
// POST JSON
const created = await rezo.postJson('https://api.example.com/users', {
name: 'Ada Lovelace',
email: 'ada@example.com'
});
console.log(created.data); // { id: 1, name: 'Ada Lovelace', ... }
// Custom instance with defaults
const api = new Rezo({
baseURL: 'https://api.example.com',
timeout: 10_000,
headers: { Authorization: 'Bearer sk-...' }
});
const users = await api.get('/users'); import { Rezo, CookieJar, RezoStealth } from 'rezo';
// Persistent cookies + stealth browsing
const client = new Rezo({
jar: new CookieJar(),
cookieFile: './cookies.json',
stealth: new RezoStealth({ family: 'chrome', rotate: true })
});
const page = await client.get('https://example.com'); What’s Next
- Installation — Install the package and configure your environment
- Quick Start — Make your first requests and explore core features