srvx

Frameworks & LibrariesMIT

srvx release notes.

Latest v1.0.5 · by srvxWritten in TypeScriptWebsiteh3js/srvxRSS

Release activity

Release activity — 20 releases across 15 days since Apr 3, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Apr 3, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026
MondayNo releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 20261 release on Sep 7, 20261 release on Sep 14, 2026
TuesdayNo releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 20261 release on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 20261 release on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026No releases on Sep 15, 2026
WednesdayNo releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 20261 release on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 20262 releases on Sep 2, 2026No releases on Sep 9, 2026
ThursdayNo releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 20262 releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 20261 release on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 20262 releases on Aug 20, 2026No releases on Aug 27, 20263 releases on Sep 3, 2026No releases on Sep 10, 2026
FridayNo releases on Jun 5, 2026No releases on Jun 12, 20261 release on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026
SaturdayNo releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 20261 release on Jul 4, 20261 release on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026No releases on Sep 12, 2026

20 releases since Apr 3, 2026, busiest day 3

Changelog

What changed from 0 to 1

v1.0.5

Latest
Changed 1
  • Use stable `Bunny.v1.waitUntil`
Fixed 1
  • Export `BodyTooLargeError` class with `HTTPError` shape

From srvx

compare changes

🩹 Fixes
  • body-limit: Export BodyTooLargeError class with HTTPError shape (d0c8079)
💅 Refactors
  • bunny: Use stable Bunny.v1.waitUntil (#304)
❤️ Contributors
  • Pooya Parsa (@pi0)
  • Sandro Circi (@sandros94)
View originalPermalink
How v1.0.5 went

v1.0.4

Fixed 1
  • Handle promises independently of the global constructor in node

From srvx

compare changes

🩹 Fixes
  • node: Handle promises independently of the global constructor (#303)
❤️ Contributors
  • Ben Snyder (@benpsnyder)
View originalPermalink
How v1.0.4 went

v1.0.3

Fixed 3
  • Strip parameters before matching content type in aws-lambda
  • Don't declare chunked encoding for bodyless streamed responses in aws-lambda
  • Frame empty streamed bodies as bodyless in aws-lambda

From srvx

compare changes

🩹 Fixes
  • aws-lambda: Strip parameters before matching content type (5866bc7)
  • aws-lambda: Don't declare chunked encoding for bodyless streamed responses (9abe720)
  • aws-lambda: Frame empty streamed bodies as bodyless (175d1cf)
View originalPermalink
How v1.0.3 went

v1.0.2

Fixed 2
  • Handle requests without an abort signal in node/web
  • Fix query params, set-cookie, v1 response shape, and drain hang in aws-lambda

From srvx

compare changes

🩹 Fixes
  • node/web: Handle requests without an abort signal (bf61f18)
  • aws-lambda: Query params, set-cookie, v1 response shape, drain hang (#300, 4de428d)
View originalPermalink
How v1.0.2 went

v1.0.1

Fixed 1
  • Report auto-listen failure instead of exiting 0 silently

From srvx

compare changes

🩹 Fixes
  • node: Report auto-listen failure instead of exiting 0 silently (81a3b64)
📖 Documentation
🏡 Chore
❤️ Contributors
View originalPermalink
How v1.0.1 went

v0.12.8

Changed 1
  • Avoid full parse when reading hash on the fast path for url
Fixed 1
  • Allow body reads when stream is pre-drained with rawBody

From srvx

🔥 Performance
  • url: Avoid full parse when reading hash on the fast path (#296)
🩹 Fixes
  • node: Allow body reads when stream is pre-drained with rawBody (#295)
❤️ Contributors
View originalPermalink
How v0.12.8 went

v0.12.7

Fixed 1
  • Detect client disconnects on Node 26 for node/http2

From srvx

compare changes

🩹 Fixes
  • node/http2: Detect client disconnects on Node 26 (dfb0306)
View originalPermalink
How v0.12.7 went

v0.12.6

Changed 1
  • Derive HeadersInit from the ambient Headers in bun
Fixed 13
  • Make send-failure recovery unable to throw in node
  • Discard the body for HEAD requests to a Node stream response
  • Destroy body stream when client aborts before first chunk in node
  • Normalize absolute-form request targets instead of trusting them in node
  • Prevent client path and Host header from overriding request.url origin in aws-lambda
  • Honor NODE_ENV=production again in cli

From srvx

compare changes

🩹 Fixes
  • node: Make send-failure recovery unable to throw (474ac29)
  • node: Discard the body for HEAD requests to a Node stream response (e2fc775)
  • node: Destroy body stream when client aborts before first chunk (8d9c958)
  • node: Normalize absolute-form request targets instead of trusting them (a11765b)
  • aws-lambda: Prevent client path and Host header from overriding request.url origin (b1e440c)
  • cli: Honor NODE_ENV=production again (2e7a135)
  • cli: Forward tls/protocol/node from an intercepted serve() entry (2f5ff20)
  • body-limit: Serve _request over the size-limited body (6882f6d)
  • node/web: Honor writeHead headers when statusMessage is not a string (46336b3)
  • aws-lambda: Do not duplicate cookies from headers and cookies[] (#291)
  • node: Reject body reads with the abort reason after a client disconnect (3a5187e)
  • node/http2: Detect client disconnects before a body read (5f1ed2c)
  • node/web: Do not rely on Node's lazy IncomingMessage.headers accessor (0fbfb06)
📖 Documentation
  • node: Document that mutating response headers preserves the raw body (8f8f95b)
🌊 Types
  • bun: Derive HeadersInit from the ambient Headers (#288)
✅ Tests
  • bun: Actually run the node-compat suites under Bun (27a071c)
❤️ Contributors
  • Pooya Parsa (@pi0)
  • SeaStar Deng (@DSeaStar)
  • Alexander Chepurnoy (@cany748)
View originalPermalink
How v0.12.6 went

v0.12.2

Added 1
  • Export body size limit helpers via srvx/body-limit

From srvx

🚀 Enhancements
  • Export body size limit helpers via srvx/body-limit (#280) (docs)
View originalPermalink
How v0.12.2 went

v0.12.0

Added 3
  • Add Last-Modified and ETag conditional caching support to static file serving
  • Add opt-in Cache-Control via maxAge and immutable options to static file serving
  • Add byte-range request support to static file serving
Changed 3
  • Precompose the middleware chain at construction time for improved performance
  • Batch stdout writes and cache the timestamp in logging
  • Rename subpath exports to *Middleware and *Plugin
Fixed 12
  • Call respondWith synchronously and drop extension bypass in service-worker
  • Correct body handling in toFetchHandler compatibility layer
  • Handle file:// entry in loader and node-level TLS in mtls
  • Prevent body-read crashes and wire corruption in the Node adapter
  • Prevent waitUntil leak and reject NaN ports
  • Add CLI test suite and stabilization updates
Security 1
  • Apply security hardenings and general improvements to static file serving

From srvx

compare changes

🚀 Enhancements
  • static: ⚠️ Security hardenings and general improvements (#252)
  • static: Add Last-Modified and ETag conditional caching (#269)
  • static: Add opt-in Cache-Control via maxAge/immutable (#273)
  • static: Add byte-range request support (#275)
🔥 Performance
  • middleware: Precompose the middleware chain at construction time (#264)
  • log: Batch stdout writes and cache the timestamp (#266, #274)
💅 Refactors
  • ⚠️ Rename subpath exports to *Middleware / *Plugin (#278)
🩹 Fixes
  • service-worker: Call respondWith synchronously and drop extension bypass (#226)
  • node/web: Correct body handling in toFetchHandler compat layer (#232)
  • Handle file:// entry in loader and node-level TLS in mtls (#231)
  • node: Prevent body-read crashes and wire corruption in the Node adapter (#228)
  • Prevent waitUntil leak and reject NaN ports (#225)
  • cli: Stabilization batch and add CLI test suite (#234)
  • url: Repair FastURL origin-form string and HTTP/2 char normalization (#227)
  • Resolve x-forwarded-* hop-aware, right-to-left (#229)
  • node: Node adapter correctness fixes (statusText, empty body, HEAD streaming, send errors, sync bridge) (#243)
  • node: Make patchGlobalRequest idempotent (#255)
  • node/web: Remove "data" listener from the socket it was added to (#261)
  • node: Guard already-destroyed streamBody cancel against unhandled rejection (#257)
  • node: Enable SO_REUSEPORT for reusePort option (#258)
  • node: Don't permanently cache a missed kNeedDrain symbol lookup (#256)
  • node: Reject body reads after the body is consumed (#254)
  • node/web: Supply next to connect-style middleware on the synthetic bridge path (#259)
  • node: Answer 500 for unhandled handler errors (#251)
  • node: Copy FastResponse init headers instead of adopting them (#263)
  • node: Keep req.headers live and consistent across _request materialization (#265)
  • node/web: Strip explicit Transfer-Encoding to avoid corrupting the bridged body (#268)
  • node/web: Strip hop-by-hop headers from toWebResponse() (#270)
  • node/web: Stream bridged responses instead of buffering until end() (#248, #271)
  • url: Keep searchParams identity and reflect mutations across deopt (#276)
  • Improve edge adapters and tests (#242)
📖 Documentation
  • Improvements (#238)
  • Rename onError option to error (#246)
✅ Tests
  • node-adapters: Run fetch(nodeHandler) suite on Deno and Bun in CI (#272)
🤖 CI
  • Run the full test suite (#224)
View originalPermalink
How v0.12.0 went

v0.11.21

Fixed 1
  • Do not mutate raw req.url on pathname change in node

From srvx

compare changes

🩹 Fixes
  • node: Do not mutate raw req.url on pathname change (#220)
View originalPermalink
How v0.11.21 went

v0.11.20

Changed 2
  • Fast header lookups and fewer per-request allocations
  • Fire-and-forget response send on the serve() path

From srvx

compare changes

🔥 Performance
  • node: Fast header lookups and fewer per-request allocations (#218)
  • node: Fire-and-forget response send on the serve() path (#219)
View originalPermalink
How v0.11.20 went

v0.11.19

Added 1
  • Add maxRequestBodySize server option
Changed 1
  • Update tracingChannel StoreType object constraint satisfaction for tracing types
Fixed 3
  • Make content-length and content-type deduplication case-insensitive in FastResponse for node
  • Deoptimize FastURL for query percent-encode-set characters (" ' < >)
  • Read duplicate single-value headers from rawHeaders in get/has methods for node

From srvx

compare changes

🚀 Enhancements
  • maxRequestBodySize server option (#216) (docs)
🩹 Fixes
  • node: Case-insensitive content-length/content-type dedup in FastResponse (#214)
  • url: Deopt FastURL for query percent-encode-set chars (" ' < >) (#215)
  • node: Read duplicate single-value headers from rawHeaders in get/has (#217)
Types
  • tracing: Satisfy tracingChannel StoreType object constraint (57001b6)
View originalPermalink
How v0.11.19 went

v0.11.17

Fixed 3
  • Forward socket drain and handle aborted signals in node/web
  • Keep body methods working when globalThis.Request is patched
  • Deopt FastURL to native parser for fragments and path encode-set chars

From srvx

compare changes

🩹 Fixes
  • node/web: Forward socket drain and handle aborted signals (#209)
  • node: Keep body methods working when globalThis.Request is patched (8d91ebe)
  • node: Deopt FastURL to native parser for fragments and path encode-set chars (d384e41)
📖 Documentation
  • cli: Document static file serving (#210)
❤️ Contributors
  • Pooya Parsa (@pi0)
  • Sébastien Chopin (@atinux)
View originalPermalink
How v0.11.17 went

v0.11.16

Changed 1
  • Add new TypeOfService utils to socket implementation in node/web
Fixed 3
  • Flatten writeHead headers on Deno in node adapter
  • Handle empty body in aws-lambda-streaming adapter
  • Do not crash on asterisk-form request targets in node adapter

From srvx

compare changes

🩹 Fixes
  • node: Flatten writeHead headers on Deno (#203)
  • aws-lambda-streaming: Handle empty body (#205)
  • node: Do not crash on asterisk-form request targets (#206)
💅 Refactors
  • node/web: Add new TypeOfService utils to socker impl (945fc17)
❤️ Contributors
  • Taylor Steele (@taylorfsteele)
  • Pooya Parsa (@pi0)
  • KT (@ktKongTong)
View originalPermalink
How v0.11.16 went

v0.11.15

Fixed 1
  • Do not swallow getReader errors in node/web

From srvx

compare changes

🩹 Fixes
  • node/web: Do not swallow getReader errors (#199)
❤️ Contributors
  • Joël Charles (@magne4000)
View originalPermalink
How v0.11.15 went
View all

Discussion

If you publish srvx, you can claim this product by proving you administer its repository.