Getting Started

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/https modules (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 curl binary
  • 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