What’s New

srvx

Developer Tools

srvx release notes.

Latest v0.12.2 · by srvxWebsiteh3js/srvx

Changelog

v0.12.0

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)

v0.11.19

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)

v0.11.17

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)

v0.11.16

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)