Changelog
September 30, 2026
core:
- remove support for automated next.js tags from the core fetch client (5fc6382)
core, fetch, node, server:
- Allow path to be omitted from http methods in route builder. enforce leading slash in paths in types. (8db54c8)
core, tanstack-query:
- Align TanStack Query utils with the Fetch client and TanStack Query APIs. Query and streamed-query utils now accept one options object with a
requestfield, infinite queries map TanStack page parameters to route requests with arequestcallback, andskipTokenconsistently replacesrequest. Route utils expose explicitqueryKey()andmutationKey()methods, generated mutation options use the route mutation key by default, and query keys preserve request input unchanged. Utils also preserve dynamic global-header inference and route-specific Fetch options, while mutations accept caller-managed cancellation signals. (8c57e3d)
express, fastify, fetch, hono, node, server:
- Add .$context
() for ther route builder to specify context for specific set of routes. Remove providing initial context option from route registeration. (d72a045)
express, fastify, fetch, hono, node, server:
- add options to disable request and response validation across server adapters (5676c02)
express, fastify, fetch, hono, node, server:
- Allow reusable context type and middleware for implement api (5676c02)
express, fastify, fetch, hono, node, server:
- Replace direct application context property access with a typed per-request
context.get(key)andcontext.set(key, value)store. (d72a045)
tanstack-query:
- Fix an issue with inline contextual typing inference not working for streamedQueryOptions (623354d)
September 27, 2026
September 18, 2026
express, fastify, fetch, hono, node:
- re-export type
() helper from all server adapters (5676c02)
September 18, 2026
core, express, fastify, fetch, hono, node, server, tanstack-query:
- Add custom codecs support for fetch client and server adapters (d72a045)
core, express, fastify, fetch, hono, node, server, tanstack-query:
- Add server-first route declarations and implementations, typed clients derived from server implementations, and matching TanStack Query helpers. Add new
@rest-rpc/nodeadapter for serving routes directly with Node HTTPIncomingMessageandServerResponsehandler. (45d0fca)
core, express, fastify, fetch, hono, node, server, tanstack-query:
- Remove flattened request keys convention and make each http declaration specify the request segments (d72a045)
core, express, fastify, fetch, hono, node, server, tanstack-query:
- Remove support of returning undeclared headers through server handler. Remove set-cookie header helpers (d72a045)
core, express, fastify, fetch, hono, node, server, tanstack-query:
- Remove the WebSocket and server-sent events abstractions, including their route builders, client and server helpers, adapter options, and related public types. (d72a045)
core, express, fastify, fetch, hono, node, server, tanstack-query:
- Replace inferred and explicitly declared form array keys with bracket notation serialization across query parameters, URL-encoded forms, and multipart forms. (d72a045)
core, server:
- Declare responses with
response(status, schema?, options?), where content type and typed headers are options and an omitted schema means no body. Store every response declaration as{ body, contentType, headers? }, normalizing an omitted body content type toapplication/jsonandstreamResponse()toapplication/x-ndjson; no-body responses usebody: undefined. Remove the custom body wrapper types,isStandardSchema(), andcustomStreamResponse(). Fetch clients parse and validate non-stream custom responses, with an optionalbodyParserclient setting for custom decoding. (3cc08a5)
core, server:
- Remove
jsonQuery(schema)support. This allowed to sent json via query string, but added unnecessary complexity to the client and server. (3cc08a5)
core, server:
- Use
body(schema, { contentType })andinput(schema, { contentType })for every request body encoding, removing the form and multipart wrapper methods. An omitted body content type is normalized toapplication/json. Client calls select among multiple declared content types through the Fetch options argument. Server-first body calls always provide that option for non-JSON content types. (3cc08a5)
core, server, tanstack-query:
- Add shorthand routes that omit explicit HTTP details and behave like procedures. Support shorthand declarations in server-first implementations, generated clients, OpenAPI documents, and TanStack Query helpers. Procedure handlers receive validated input under an
inputfield while clients pass the input value directly. (45d0fca)
core, tanstack-query:
- Add HttpError to core package and convert all unknown responses to one (eb811fd)
core, tanstack-query:
- Remove the
strictStatusCodesroute factory option and make its behavior the default. HTTP clients now return only contract-declared responses and throw when a server returns an undeclared status. TanStack Query errors no longer include an undeclaredrawResponsebranch. (b301886)
core, tanstack-query:
- Replace
.fetchand.fetchResponsewith callable route leaves that return the response envelope. Server-first HTTP selectors now accept the path, grouped request, and Fetch API options in one call. (45d0fca)
core, tanstack-query:
- Replace conditional positional arguments on fetch client and tanstack query for request/options with simpler convention. To pass options when there is no request input pass undefined as first argument explictly (45d0fca)
core, tanstack-query:
- Replace the client response
declareddiscriminator with status-based narrowing. Undeclared responses now preserve the untouched nativeResponse, HTTP response declarations are limited to statuses from 100 through 599. (45d0fca)
express, fastify, fetch, hono, node, server:
- Use each framework’s native error-handling flow for request and response validation failures. Replace the shared server error-handler API with exported validation error classes and adapter-specific hooks allowing for more native feeling error handling. (45d0fca)
fetch, server:
- Replace automatic 404 handling for non-matched route with a result type, giving more control for user on how to handle non-matched routes (f1e7102)
September 2, 2026
core, express, fastify, fetch, hono, next, server, tanstack-query:
- Redesign contract declaration around fluent, per-route builders. This is a (1ea1c91)
core, tanstack-query:
- Update several helper types to render in prettier way when hovering over them in IDEs. This is a purely cosmetic change and does not affect the actual types. (cd60c4c)
server:
- Allow RouteResponseError to be scoped to any part of the contract not just specific route so it’s easier to use in shared code with common responses. Additionally fix an issue where RouteResponseError declared errors thrown by the route handler would not go through response validation correctly. Also fix an issue where shorthand response with status field was allowed and could lead to unpredictable behaviour (f10e616)
August 29, 2026
August 29, 2026
August 28, 2026
core:
- Make schemaConverter optional and add transform hooks for generated OpenAPI parameters and operations (d92c809)
core, tanstack-query:
- Rename API surfaces. Add support for strictStatusCodes for tanstack-query helpers (7d783af)
express, fastify, hono, server:
- rename server registerRoutes to splitRouteImplementations to decribe its role more accurately. (52d0d20)
August 27, 2026
core:
- Add a helper type StrictClientResponse
for inferring responses from api client configured with strict status codes (62ff0d2)
core, express, fastify, hono, next, server, tanstack-query:
- Rename the Fetch runtime adapter package from
@rest-rpc/webto@rest-rpc/fetchand rename public Web-prefixed adapter types to Fetch-prefixed names. Rename Server webResponse (5676c02)
core, fetch, hono, server:
- Add formBody() for typed application/x-www-form-urlencoded request bodies (ea61381)
core, fetch, hono, server:
- Add multipartBody() that provides type safe usage of multipart/form-data (ea61381)
core, server:
- Add an option to omit content type for custom body and let fetch infer it (32758ad)
core, server:
- Add array field support to formBody() (f162fff)
core, server:
- Add support for using explicit http shape for http requests as alternative (0ea9523)
core, server:
- Remove exports from server and core packages that were not any of use (8ed8d40)
express:
- harder streaming backpressure handling (1baae9a)
fetch:
- Remove initWeb
() api and replace it with documented module augmentation (15d9aca)
fetch:
- Restrict unknown key access for typescript for context types (90a28df)
August 23, 2026
core:
- Add field raw to access the raw websocket instance in client WebSocket wrapper and stop mutating that instance (a787af6)
core:
- add option to use strict responses, rename unknownRequestKeys option to strictRequestKeys for consistency, add type-level support that makes getGlobalHeaders returned header keys optional for each fetch call (b228897)
core:
- add support for resolving request keys from valibot variant schema (751b957)
express, fastify, hono, next, server, web:
- Add support for implementing handlers for router as a class (5676c02)
next, server, web:
- Add support for nesting route/route declarations inside another router and allow stacking .middleware() calls (8611b28)
server:
- optimize path matching performance (7d54706)
August 23, 2026
core, express, fastify, hono, next, server, tanstack-query, web:
- Add tsdoc comments for every package root export (c6f7dcc)
core, express, fastify, hono, next, server, tanstack-query, web:
- improve generated API reference by changing exported arrow functions to regular functions and dropping unnecssary noisy exports (d643f76)
express, fastify, hono, server:
- rename RawWebSocket type to WebSocketLike (b82b338)
tanstack-query:
- rename tanstack infiniteQueryOptions args to be more describing (a226f2d))
August 21, 2026
express, fastify, hono, next, server, web:
- Harden server error handling for parser, response validation, and WebSocket upgrade failures (0f23a31)
August 21, 2026
core, express, fastify, hono, next, server, tanstack-query, web:
- export changes (4f8d7db)
core, express, fastify, hono, next, server, tanstack-query, web:
- improve npm package metadata with descriptions, keywords, and repository directories. (5676c02)
core, tanstack-query:
- improved names for type helpers (8851cf2)
August 20, 2026
express, fastify, hono, next, server, web:
- Remove routes function and replace it conseptually by allowing to stack router/route calls excluding web/next which cannot do that due to having different implementation (bf4ad62)
next, web:
- Add support for single middleware-like option for web/next package (48b395f)
August 19, 2026
core, express, fastify, hono, next, server, tanstack-query, web:
- update packages README.md file (5676c02)
core, tanstack-query:
- rename origin -> baseUrl and allow baseUrl to be any value (d170b41)
express:
- Accept IRouter instead of Application so routers can be used for registerRoutes (e410613)
express, fastify, hono:
- add support for route-aware middleware/preHandler for express,hono,fastify (9a3f3b9)
August 17, 2026
next:
- fix NextRouteHandlerContext type to include signal (348f93c)
August 17, 2026
core, express, fastify, hono, server, web:
- Add end-to-end HTTP cancellation for built-in NDJSON streams and handler
AbortSignals, and scopetimeoutMsto waiting forfetchto return aResponse. (997c886)
August 16, 2026
August 16, 2026
core, server:
- add support for declaring multiple content types for a route (83d3fb8)
August 16, 2026
August 16, 2026
core:
- automatically infer path params schema from path string if not provided by user (00a5d04)
core:
- remove undocumented ‘validate’ option + undocumented regex export (2ca9817)
core, server:
- Add shorthands where a single response may be provided with status code inferred from method or no response/responses may be provided and inferred as method status + noBody (5e6ddbd)
August 15, 2026
core:
- Allow request fields directly on route declarations, support {id} path params, redesign cache keys for Next/TanStack Query, and reduce expensive contract types for better typechecking performance. (0d7133f)
August 14, 2026
core, server:
- Support async Standard Schema validation across async runtime boundaries and remove async contract definition helpers. (23017bc)
August 14, 2026
core, express, fastify, hono, next, server, tanstack-query, web:
- Initial release of rest-rpc (d72a045)