Skip to content

Commit 9246a05

Browse files
committed
readme update
1 parent f8beba7 commit 9246a05

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

README.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![Build package and run tests](https://github.com/sagemathinc/http-proxy-3/actions/workflows/test.yml/badge.svg)](https://github.com/sagemathinc/http-proxy-3/actions/workflows/test.yml)
44

5-
**THIS IS READY TO USE IN PRODUCTION.**
5+
**THIS IS FULLY READY TO USE IN PRODUCTION. Please use it!**
66

77
http\-proxy\-3 is a modern API compatible rewrite of
88
[http\-proxy](https://github.com/http-party/node-http-proxy), the original nodejs
@@ -13,15 +13,24 @@ can be done using nginx or haproxy.
1313

1414
**PR's welcome!**
1515

16-
May 11, 2025 STATUS compared to [http-proxy](https://www.npmjs.com/package/http-proxy) and [httpxy](https://www.npmjs.com/package/httpxy):
16+
Contributors:
1717

18-
- Library entirely rewritten in Typescript in a modern style, with many typings added internally.
18+
- [William](https://wstein.org/) [Stein](https://github.com/williamstein) -- lead dev; started this fork and did the initial Typescript rewrite, etc.
19+
- [sapphi-red](https://green.sapphi.red/about) -- greatly improved Typescript support to prepare http-proxy-3 for use in [Vite](https://vite.dev/)
20+
- [ImranR-TI](https://github.com/ImranR-TI) -- very helpful bug reports
21+
- Everybody who ever contributed to [http-proxy](https://www.npmjs.com/package/http-proxy)
22+
23+
**Status:**
24+
25+
July 12, 2025 STATUS compared to [http-proxy](https://www.npmjs.com/package/http-proxy) and [httpxy](https://www.npmjs.com/package/httpxy):
26+
27+
- Library entirely rewritten in Typescript in a modern style, with many typings added internally and strict mode enabled.
1928
- All dependent packages updated to latest versions, addressing all security vulnerabilities according to `pnpm audit`.
2029
- Code rewritten to not use deprecated/insecure API's, e.g., using `URL` instead of `parse`.
21-
- Fixed socket leaks in the Websocket proxy code, going beyond [http-proxy-node16](https://www.npmjs.com/package/http-proxy-node16) to also instrument and logging socket counts.
30+
- Fixed socket leaks in the Websocket proxy code, going beyond [http-proxy-node16](https://www.npmjs.com/package/http-proxy-node16) to also instrument and logging socket counts. Also fixed an issue with uncatchable errors when using websockets.
2231
- Switch to pnpm for development.
2332
- More jest unit tests than both http-proxy and httpxy: converted all the http-proxy examples into working unit tests that they actually work (http-proxy's unit tests just setup the examples in many cases, but didn't test that they actually work). Also httpxy seems to have almost no tests. These tests should make contributing PR's much easier.
24-
- Used in production on https://CoCalc.com
33+
- Used in production on https://CoCalc.com and JupyterHub.
2534
- Addressed [this vulnerability](https://github.com/http-party/node-http-proxy/issues/1647).
2635

2736
**Motivation:** http-proxy is one of the oldest and most famous nodejs modules, and it gets downloaded around 15 million times a week, and I've loved using it for years. Unfortunately, it is [unmaintained](https://github.com/http-party/node-http-proxy/issues/1687), it has significant leaks that [regularly crash production servers](https://github.com/jupyterhub/configurable-http-proxy/issues/434), and is written in ancient untyped Javascript. The maintainers have long since stopped responding, so there is no choice but to fork and start over. I wanted to do my part to help maintain the open source ecosystem, hence this library. I hope you find it useful.
@@ -424,7 +433,6 @@ proxyServer.listen(8015);
424433
- **protocolRewrite**: rewrites the location protocol on \(201/301/302/307/308\) redirects to 'http' or 'https'. Default: null.
425434

426435
- **cookieDomainRewrite**: rewrites domain of `set-cookie` headers. Possible values:
427-
428436
- `false` \(default\): disable cookie rewriting
429437
- String: new domain, for example `cookieDomainRewrite: "new.domain"`. To remove the domain, use `cookieDomainRewrite: ""`.
430438
- Object: mapping of domains to new domains, use `"*"` to match all domains.
@@ -438,7 +446,6 @@ proxyServer.listen(8015);
438446
```
439447
440448
- **cookiePathRewrite**: rewrites path of `set-cookie` headers. Possible values:
441-
442449
- `false` \(default\): disable cookie rewriting
443450
- String: new path, for example `cookiePathRewrite: "/newPath/"`. To remove the path, use `cookiePathRewrite: ""`. To set path to root use `cookiePathRewrite: "/"`.
444451
- Object: mapping of paths to new paths, use `"*"` to match all paths.
@@ -634,4 +641,3 @@ pnpm test
634641
> LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
635642
> OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
636643
> THE SOFTWARE.
637-

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "http-proxy-3",
3-
"version": "1.20.9",
3+
"version": "1.20.10",
44
"repository": {
55
"type": "git",
66
"url": "https://github.com/sagemathinc/http-proxy-3.git"

0 commit comments

Comments
 (0)