Skip to main content

latest

The tRPC server library

Works with
This package works with Bun
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Browsers
JSR Score
47%
Published
3 months ago

tRPC

tRPC

End-to-end typesafe APIs made easy

Demo

@trpc/server

Create tRPC routers and connect them to a server.

Documentation

Full documentation for @trpc/server can be found here

Installation

# npm
npm install @trpc/server@next

# Yarn
yarn add @trpc/server@next

# pnpm
pnpm add @trpc/server@next

# Bun
bun add @trpc/server@next

We also recommend installing zod to validate procedure inputs.

Basic Example

import { initTRPC } from '@trpc/server';
import {
  CreateHTTPContextOptions,
  createHTTPServer,
} from '@trpc/server/adapters/standalone';
import { z } from 'zod';

// Initialize a context for the server
function createContext(opts: CreateHTTPContextOptions) {
  return {};
}

// Get the context type
type Context = Awaited<ReturnType<typeof createContext>>;

// Initialize tRPC
const t = initTRPC.context<Context>().create();

// Create main router
const appRouter = t.router({
  // Greeting procedure
  greeting: t.procedure
    .input(
      z.object({
        name: z.string(),
      }),
    )
    .query(({ input }) => `Hello, ${input.name}!`),
});

// Export the app router type to be imported on the client side
export type AppRouter = typeof appRouter;

// Create HTTP server
const { listen } = createHTTPServer({
  router: appRouter,
  createContext,
});

// Listen on port 2022
listen(2022);

Add Package

deno add @trpc/server

Import symbol

import * as mod from "@trpc/server";

Add Package

npx jsr add @trpc/server

Import symbol

import * as mod from "@trpc/server";

Add Package

yarn dlx jsr add @trpc/server

Import symbol

import * as mod from "@trpc/server";

Add Package

pnpm dlx jsr add @trpc/server

Import symbol

import * as mod from "@trpc/server";

Add Package

bunx jsr add @trpc/server

Import symbol

import * as mod from "@trpc/server";