Releases: sqdshguy/wreq-js
v1.6.0
What's Changed
- Transport API - added reusable transport for requests, now request handling is more flexible
- Improved ephemeral client management and enhanced session handling (better perf for ephemeral
fetch) - Firefox 146 emulation
Full Changelog: v1.5.2...v1.6.0
v1.5.2
What's Changed
- New emulation profiles for Chrome, Firefox, and Safari
Full Changelog: v1.5.1...v1.5.2
v1.5.1
What's Changed
- We now have docs! Shoutout to Mintlify. You can access the docs at https://wreq.sqdsh.win/
- Packaging: proper CJS + ESM support
- Type/API tightening (potentially breaking for some TS users):
RequestInit.sessionnow expects a realSessioninstance - Correctness fix: duplicate cookie names are now preserved
- Performance work (hot-path improvements): around 2% improvement
- Testing coverage was expanded and improved
- Added husky pre-commit hooks and fail-fast behavior
Full Changelog: v1.4.0...v1.5.1
v1.4.0
What's Changed
- Improved performance (~27% more RPS) by optimizing hot paths. Now performance is mostly bottlenecked by JS runtime (Node.JS / Bun), basically NAPI overhead
- Updated deps
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Added
- Certificate validation control: New
insecureparameter forfetch(), sessions, and WebSockets to disable SSL certificate verification for development and testing against servers with self-signed or expired certificates.
⚠️ Security Warning: Only use in development/testing environments. When enabled, any certificate for any site will be trusted. - Enhanced build system: automatic OS and profile type extraction from
wreq-utilto reduce code duplication and prevent version drift between dependencies. - Input validation: timeout values are now validated to prevent invalid configurations.
Removed
- Alpine Linux aarch64: temporarily removed aarch64-unknown-linux-musl support due to cross-compilation complexities. x86_64 musl builds remain supported for Alpine Linux users.
Full Changelog: v1.2.0...v1.3.0
v1.2.0
This is a substantial release. It completes several long-standing goals and unlocks new capabilities across the stack.
Added
- Operating system emulation: New
osparameter forfetch(), sessions, and WebSockets to emulate Windows, macOS, Linux, Android, or iOS platform specific headers and TLS fingerprints (default:macos). Usage details are documented in the README. getOperatingSystems()API to query all supported OS targets.- Response body streaming:
Response.bodynow exposes a standardReadableStream<Uint8Array>with lazy initialization and clone support. - True
AbortSignalintegration: request cancellation now propagates into the native layer for proper connection cleanup. - Full HTTP method support including TRACE, CONNECT, OPTIONS, and custom verbs.
- Redirect control via the standard
redirectoption (follow,manual,error). - Alpine Linux support: musl libc builds for x86_64 and aarch64.
- Test coverage monitoring with c8 and strict thresholds. Coverage improvements continue next release.
Improved
- Performance: removed unnecessary Buffer copies in the Response class.
- Concurrency: reused the HTTP runtime for WebSocket connections.
- Concurrency: switched to DashMap for the connection registry.
- Code quality: added rustfmt and clippy configurations with automated formatting.
- Dependencies: upgraded to wreq 6.0.0 rc.22 with streaming support, neon 1.1, and refreshed npm/cargo dependencies.
- Documentation: clarified fetch isolation vs session usage, documented streaming, musl support, and the unthrottled concurrency model.
Internal
- Build system now extracts operating system types from wreq util automatically to reduce duplication and avoid version drift.
- Simplified build guide for contributors.
- Expanded test coverage including binary bodies, streaming correctness, and OS emulation tests.
Full Changelog: v1.1.1...v1.2.0
v1.1.1
This update fixes a critical bug where the order of headers and cookies was not being preserved correctly. The issue likely originated from the original node-wreq library and was discovered during manual testing.
Going forward, I plan to expand test coverage to help catch similar issues earlier and ensure more reliable releases.
Full Changelog: v1.1.0...v1.1.1
v1.1.0
New Features
- Added support for more encodings (brotli, deflate, ztsd) and charsets by tweaking
wreqoptional features - Added ability to disable adding emulation headers when custom ones are provided.
disableDefaultHeadersoption should be used, it is documented in the README
Full Changelog: v1.0.0...v1.1.0
v1.0.0
Excited to introduce the first stable release, featuring fetch-compatible API and session management.
New Features
- Fetch-style API - Standard
Headersclass andRequestInitinterface for familiar Node.js integration - Session management - Create isolated sessions with independent cookie jars for multi-account workflows
- Improved caching - Replaced DashMap with Moka for better performance and automatic TTL management
Breaking Changes
- New API, easy to migrate if you're familiar with browser
fetchornode-fetch - Default browser profile updated to
chrome_142 - Client caching now session-based instead of per-request pooling
Improvements
- Enhanced cookie parsing using wreq's native utilities
- Comprehensive test coverage with local test server
- Updated documentation with session and cookie examples
- Streamlined README for clarity
Full Changelog: v0.2.0...v1.0.0
v0.2.0
Fixed
- Hardened websocket handling
- Shared runtime and cache HTTP clients (default limit is 1024) to improve performance
Changed
- Updated to Rust edition 2024
- Migrated from Prettier to Biome for code formatting and linting
- Stricter TypeScript configuration
- Updated dev dependencies and GitHub Actions workflows
- Removed unused dependencies and optimized Tokio features
Full Changelog: v0.1.0...v0.2.0