Skip to content
rest-rpc
Esc
↑↓navigate↵open⌘Jpreview
On this page

Changelog

v0.1.0-beta.23

September 30, 2026

Prerelease

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 request field, infinite queries map TanStack page parameters to route requests with a request callback, and skipToken consistently replaces request. Route utils expose explicit queryKey() and mutationKey() 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) and context.set(key, value) store. (d72a045)

tanstack-query:

  • Fix an issue with inline contextual typing inference not working for streamedQueryOptions (623354d)
v0.1.0-beta.22

September 27, 2026

Prerelease

core, express, fastify, fetch, hono, node, server:

  • more flexible route builder (d72a045)

core, express, fastify, fetch, hono, node, server, tanstack-query:

  • centralize type helpers (d72a045)
v0.1.0-beta.21

September 18, 2026

Prerelease

express, fastify, fetch, hono, node:

  • re-export type() helper from all server adapters (5676c02)
v0.1.0-beta.20

September 18, 2026

Release

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/node adapter for serving routes directly with Node HTTP IncomingMessage and ServerResponse handler. (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 to application/json and streamResponse() to application/x-ndjson; no-body responses use body: undefined. Remove the custom body wrapper types, isStandardSchema(), and customStreamResponse(). Fetch clients parse and validate non-stream custom responses, with an optional bodyParser client 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 }) and input(schema, { contentType }) for every request body encoding, removing the form and multipart wrapper methods. An omitted body content type is normalized to application/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 input field 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 strictStatusCodes route 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 undeclared rawResponse branch. (b301886)

core, tanstack-query:

  • Replace .fetch and .fetchResponse with 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 declared discriminator with status-based narrowing. Undeclared responses now preserve the untouched native Response, 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)
v0.1.0-beta.19

September 2, 2026

Prerelease

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)
v0.1.0-beta.18

August 29, 2026

Prerelease

core:

  • flattenRequestKeys can now be overridden by parent router instead of silently defaulting to true when stacking route/router declarations (1494193)

core, server:

  • Align multipartBody() API with formBody() API. (ebae920)
v0.1.0-beta.17

August 29, 2026

Prerelease

core, tanstack-query:

  • fix a bug with tanstack query cache keys being empty when stacking route/router calls (b763439)

tanstack-query:

  • Add streamedQueryOptions and remove sse routes from being suggested for tanstack query as valid (c1b8f7c)
v0.1.0-beta.16

August 28, 2026

Prerelease

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)
v0.1.0-beta.15

August 27, 2026

Prerelease

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/web to @rest-rpc/fetch and 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)
v0.1.0-beta.14

August 23, 2026

Prerelease

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)
v0.1.0-beta.13

August 23, 2026

Prerelease

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))
v0.1.0-beta.12

August 21, 2026

Prerelease

express, fastify, hono, next, server, web:

  • Harden server error handling for parser, response validation, and WebSocket upgrade failures (0f23a31)
v0.1.0-beta.11

August 21, 2026

Prerelease

core, express, fastify, hono, next, server, tanstack-query, web:

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)
v0.1.0-beta.10

August 20, 2026

Prerelease

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)
v0.1.0-beta.9

August 19, 2026

Prerelease

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)
v0.1.0-beta.8

August 17, 2026

Prerelease

next:

  • fix NextRouteHandlerContext type to include signal (348f93c)
v0.1.0-beta.7

August 17, 2026

Prerelease

core, express, fastify, hono, server, web:

  • Add end-to-end HTTP cancellation for built-in NDJSON streams and handler AbortSignals, and scope timeoutMs to waiting for fetch to return a Response. (997c886)
v0.1.0-beta.6

August 16, 2026

Prerelease

core, server:

  • add support for route status code specific response headers so important headers can be declared and must be returned from server handlers (fc89f34)

express, fastify, hono, next, server, web:

  • convenience setCookie and clearCookie helpers for server adapters (c6dbcc9)
v0.1.0-beta.5

August 16, 2026

Prerelease

core, server:

  • add support for declaring multiple content types for a route (83d3fb8)
v0.1.0-beta.4

August 16, 2026

Prerelease

core, server:

  • Add jsonQuery support for complex query input. (ebae920)

core, server:

  • add natural support for multiple websocket messages instead of only relying on schema libraries discriminated union types (fefc87e)
v0.1.0-beta.3

August 16, 2026

Prerelease

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)
v0.1.0-beta.2

August 15, 2026

Prerelease

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)
v0.1.0-beta.1

August 14, 2026

Prerelease

core, server:

  • Support async Standard Schema validation across async runtime boundaries and remove async contract definition helpers. (23017bc)
v0.1.0-beta.0

August 14, 2026

Prerelease

core, express, fastify, hono, next, server, tanstack-query, web:

  • Initial release of rest-rpc (d72a045)