libcurl.js/CHANGELOG.md
2025-01-27 01:12:14 -05:00

167 lines
No EOL
5.1 KiB
Markdown

# Libcurl.js Changelog:
## v0.7.0 (1/24/25):
- Switch to Mbed TLS for the TLS backend
- This fixes some TLS certificate errors that were occurring on some sites with WolfSSL
- Fix a null pointer dereference bug with websockets
- Store the CA certificates bundle more efficiently
- The WASM size has decreased from 1.4MB to 1.2MB
## v0.6.22 (1/10/25):
- Remove Emscripten's maximum socket limit of 64
- Fix handling of sub-protocols in Websockets
## v0.6.21 (12/25/24):
- Work around a [WolfSSL bug](https://github.com/wolfSSL/wolfssl/issues/8137) causing requests to open.spotify.com to fail
## v0.6.20 (11/10/24):
- Fix bug with response body getting corrupted
## v0.6.19 (11/1/24):
- Improve download speeds even more by reducing memory copies
- Fix wrong mime type being reported in response blob
## v0.6.18 (10/29/24):
- Improve download speeds by increasing libcurl's internal buffer size and listening directly for websocket messages
## v0.6.17 (10/24/24):
- Enable a per host connection limit. This defaults to 6, which is the same as most web browsers.
- Use the latest WolfSSL again and compile with workarounds
- Upgrade to curl 8.10.1
## v0.6.16 (10/2/24):
- Fix a bug with `Headers` objects and `Request` objects not being properly handled when passed into `libcurl.fetch`
- Errors thrown are now `Error` or `TypeError` objects instead of plain strings
## v0.6.15 (9/6/24):
- WolfSSL has been downgraded to v5.6.6 due to an upstream regression
## v0.6.14 (9/4/24):
- All dependencies have been updated to the latest versions
- `libcurl.load_wasm` now returns a promise that resolves when the WASM has finished loading
- Unused protocol support has been disabled in the curl binary, resulting in 100kb binary size savings
## v0.6.13 (9/1/24):
- A minor bug where the hostname for TCP connections would be wrong in certain cases has been fixed.
## v0.6.12 (7/28/24):
- The APIs from [wisp-client-js](https://github.com/MercuryWorkshop/wisp-client-js) are now exposed at `libcurl.wisp`
## v0.6.11 (7/18/24):
- Add support for SOCKS5, SOCKS4, and HTTP proxies
## v0.6.10 (7/11/24):
- Fix a problem where the websocket URL wouldn't be set properly in some cases
## v0.6.9 (7/10/24):
- Fix a possible double free when requests get aborted
- Handle `ReadableStream` objects as the request payload
- Support the Clang AddressSanitizer
## v0.6.8 (4/30/24):
- Add support for relative URLs in HTTP sessions
- Better error handling for invalid URLs
## v0.6.7 (3/26/24):
- Fix handling of `Request` objects when passed into `libcurl.fetch`
## v0.6.6 (3/20/24):
- Fix random segfaults due to an improper invocation of libcurl
## v0.6.5 (3/20/24):
- Update Wisp client and server
- Compile WolfSSL with greater site support
## v0.6.4 (3/20/24):
- Fix handling of request bodies
## v0.6.3 (3/20/24):
- Fix an error during websocket cleanup
## v0.6.1 (3/20/24):
- Fix NPM package exports
## v0.6.0 (3/20/24):
- Refactor JS and C code
- Allow for multiple sessions with separate connection pools
- Switch to wolfSSL instead of OpenSSL for significantly smaller binaries
- Add support for sending cookies automatically
- Add NPM export for bundled version
## v0.5.3 (3/11/24):
- Update Wisp client and server, which improves error handling
- Expose the wisp-client-js version in the API
## v0.5.2 (3/10/24):
- Fix a bug with error handling
## v0.5.1 (3/10/24):
- Added support for aborting requests
## v0.5.0 (3/9/24):
- Added support for streaming HTTP responses via a readable stream
- Improve compatibility for older browsers
- Support for all types of fetch request bodies
## v0.4.2 (3/7/24):
- Expose a function to get error strings
## v0.4.1 (3/7/24):
- Fix handling of duplicate HTTP headers
## v0.4.0 (3/7/24):
- Add TLS socket support
- Add function to get the CA cert bundle
- Re-add wsproxy support
- Add custom network transport support
- Split WebSocket API into simple `libcurl.CurlWebSocket` and `libcurl.WebSocket` polyfill
- Refactor WebSocket API code
## v0.3.9 (3/3/24):
- Fix running libcurl.js inside a web worker
## v0.3.8 (2/28/24):
- Update Wisp client and server
- Expose Wisp client API functions
## v0.3.7 (2/27/24):
- Pin C library versions to stable
- Load the CA certs directly from memory instead of from the Emscripten virtual filesystem
## v0.3.6 (2/26/24):
- Fix ES6 module syntax
## v0.3.4 (2/24/24):
- Limit max TCP connections to 50
## v0.3.3 (2/4/24):
- Fix a memory leak with WebSockets
## v0.3.2 (2/4/24):
- Fix handling of 204 and 205 response codes
- Add verbose option to WebSocket API
- Fix conversion of request payloads
## v0.3.1 (2/3/24):
- Add a copyright notice to the JS bundle
## v0.3.0 (2/3/24):
- Add API to get the libcurl.js version and C library versions
- Add checks to ensure that the Websocket proxy URL has been set
## v0.2.0 (2/2/24):
- Add an option to redirect the verbose curl output.
- Use separate callbacks for stdout and stderr.
## v0.1.2 (2/1/24):
- Fix bundling the WASM into a single file
- Add unit tests
## v0.1.1 (1/29/24):
- Don't set a default websocket proxy URL
## v0.1.0 (1/28/24):
- Initial release on NPM
- Add Github Actions for automatic builds
- Add WebSocket support
- Add Fetch API support