Repository navigation
Releases: nigrosimone/fulmine.js
Releases · nigrosimone/fulmine.js
Release list
v5.25.9
5.25.9 (2026-10-25)
Performance Improvements
- load mime-db, qs, fast-zlib and acorn on first use, release acorn after listen: about a megabyte less old generation, out of the full collections V8 starts past 8 MB (28d0be6)
- make String.prototype fast again at listen, a class extending String (ioredis has one) leaves it slow, -13% instructions on a GET (06e677d)
- read Buffer from the buffer module, the global is a getter (067b966)
- response: connection headers from the hot settings, close called directly (147420d)
v5.25.8
5.25.8 (2026-10-25)
Performance Improvements
- body: avoid unused streaming state in native parsers (a9e99c8)
- compression: avoid compressor allocations on identity responses (802b36a)
- req: the body stream is subscribed only when no parser collected it natively, -2.7% instructions on a POST (466792a)
- uws: pin the optimized binaries commit (295463d)
v5.25.7
5.25.7 (2026-10-21)
Performance Improvements
- compression: brotli reuses one encoder through the native handle on node 26.11+, 57us against 84 (609001a)
- req: header names go to uWS getHeader as Buffers, half the cost of a read, -12% instructions on a GET (a651e2d)
- res: res.type() keeps the Content-Type it stored per argument, -4.5% instructions on a GET (4df4fa2)
v5.25.6
v5.25.5
v5.25.4
v5.25.3
5.25.3 (2026-10-18)
Bug Fixes
- router: an app handed to a Router's use() is not mounted, it keeps its own settings as in express (e2fc676)
- router: next('route') in a callback of use(path, f1, f2) goes on to f2, each callback is a layer to express (a56c474)
- router: req.baseUrl a middleware assigns lives in its router, express restores and resets it on the way out (aafd9db)
- res: send() sets Content-Length before end() as express, and res.end() alone puts none in the headers (5e04e5d)
v5.25.2
v5.25.1
v5.25.0
5.25.0 (2026-10-15)
Features
- cluster: "auto" on one core forks nothing and the one process serves, cluster: 1 still forks a worker (e185de6)
- cluster: app.cluster.serves, false only in the primary, so a pool is opened where requests are served (66d5d71)
- cluster: app.cluster says how many workers serve and which one this is, share(total) splits a budget like a pool (44b90ce)
Bug Fixes
- req: req.ip read late in a mounted app is read up front from then on, the root learns it too (f31d41f)
- server: a request answered in a mounted app leaves the in-flight list, so close() completes (5e570d4)
- static: "" splits a path only on windows, and a ".." out of the root is a 403 before the stat, as in send (c43a22c)
- static: an index whose name starts with a dot is served, send checks dotfiles only on the path asked for (4749861)