Skip to content
Eugene Lazutkin edited this page Jul 10, 2026 · 9 revisions

double-meh

Node.js CI NPM version

double-meh is a modern, fetch-native, ESM HTTP I/O library for browsers and CLIs — a thin, DX-first layer over fetch(). Spend the effort on setup (inspectors, services, encoders) so that use stays trivial:

import io from 'double-meh';

const person = await io.get('https://api.example.com/people/42');

The name is the :// symbol — Alex Sexton's "walrus", a.k.a. a "double meh".

Search

🔍 Search this wiki — ranked, deep-linked search via wiki-search; install the bookmarklet to search in place. Fallback: GitHub wiki search.

Highlights

  • The method declares the return shape. io.get(url) → parsed data; io.full.get(url) → the full response envelope; io.stream.get(url) → a ReadableStream. Options tune behavior, never the return type.
  • One envelope contract — returned by io.full.* and carried by a thrown BadStatus (error.status, error.data).
  • Composable servicescache and track (dedup + prefetch), both on by default for GETs, retry (verb-aware), mock — in a priority onion.
  • Web-native streamingio.stream.get for streamed responses and the io.stream.put/post/patch request/response duplexes that drop straight into a stream-chain pipeline; parsed record iteration (JSONL / json-seq) and a reconnecting SSE client on top.
  • REST-correctness built in — conditional writes, idempotency keys, problem+json, content negotiation, query builders.
  • Zero dependencies. ESM. Browser · Node · Bun · Deno.

Start here

Migrating from heya/io / heya/io-node? See the feature parity map.

Clone this wiki locally