TanStack Start adapter
The @mastra/tanstack-start package mounts Mastra in a TanStack Start application. See Server Adapters for general adapter concepts.
InstallationInstallation的直接链接
Install the TanStack Start adapter and its Hono peer dependency:
- npm
- pnpm
- Yarn
- Bun
npm install @mastra/tanstack-start@latest hono
pnpm add @mastra/tanstack-start@latest hono
yarn add @mastra/tanstack-start@latest hono
bun add @mastra/tanstack-start@latest hono
Usage exampleUsage example的直接链接
Mount the adapter in a catch-all splat route:
import { createStartRouteHandler } from '@mastra/tanstack-start'
import { createFileRoute } from '@tanstack/react-router'
import { mastra } from '../../mastra'
export const Route = createFileRoute('/api/$')({
server: {
handlers: createStartRouteHandler({ mastra }),
},
})
The prefix option defaults to /api and must match the splat route's mount path. For example, when mounting at src/routes/api/mastra/$.ts, use createStartRouteHandler({ mastra, prefix: '/api/mastra' }).
SignatureSignature的直接链接
function createStartRouteHandler(options: StartRouteHandlerOptions): StartRouteHandlers
ParametersParameters的直接链接
mastra:
tools?:
prefix?:
Return valueReturn value的直接链接
Returns a StartRouteHandlers object with GET, POST, PUT, DELETE, PATCH, OPTIONS, and HEAD properties. Each property is a handler with this signature:
(context: StartHandlerContext) => Response | Promise<Response>
The context type contains the incoming request and the splat route parameters:
type StartHandlerContext = {
request: Request
params: Record<string, string>
}
Serverless deployments & lazy initializationServerless deployments & lazy initialization的直接链接
The adapter exports its route handlers synchronously, then creates the underlying Hono app and MastraServer when the first request arrives. That initialized app is reused for subsequent requests in the same process, which supports serverless runtimes without top-level asynchronous initialization.
It uses the same Hono-based MastraServer core as the Next.js adapter. A2A endpoints use an in-memory task store, so task state lasts only for the lifetime of the process and isn't shared between serverless instances.
Body size limitBody size limit的直接链接
Request bodies have a default limit of 4.5 MB. Requests that exceed the limit receive { error: 'Request body too large' }.
Set server.bodySizeLimit on the Mastra instance to configure the limit.
MiddlewareMiddleware的直接链接
Middleware configured with server.middleware or setServerMiddleware() runs through the adapter's Hono-based server, except on framework-public routes such as those marked requiresAuth: false. See Server middleware.