wreq-js
Node.js/TypeScript HTTP client with browser profile and transport controls exposed by native Rust bindings.Native Bindings
No browser process management. Requests run through native Rust bindings.
Browser Profiles
Browser and operating system profiles exposed through a fetch-like API.
Fetch Style API
A fetch-style API with extra options for browser profiles and sessions.
WebSocket Support
WebSocket API with helper and constructor styles.
Why wreq-js?
Standard HTTP clients likeaxios, fetch, got, and curl can differ from browsers on the network layer. Signals often inspected by servers can include:
- TLS handshake details such as cipher suite order and extension sets
- HTTP behavior details such as protocol settings and framing choices
- Header defaults such as ordering and platform-specific values
wreq-js uses the wreq Rust engine underneath and exposes profile controls through a TypeScript friendly API.
When to use wreq-js
✅ Great for
✅ Great for
- Web scraping and data collection
- API automation with browser profile controls
- Multiple HTTP requests with shared session or transport settings
- Login flows and session management
- Proxy usage scenarios with per request or transport scoped settings
❌ Not for
❌ Not for
- DOM or JavaScript execution (not a browser runtime)
- CAPTCHA solving or page automation
- Full browser automation (use Playwright/Puppeteer instead)
Quick Example
If your script makes more than one request, start with a session and reuse it.
Sessions reuse the same session context across requests, which is the recommended shape for multi-step flows.