onerpc v0.4.31
oneRPC
The router-less serverless RPC framework.
oneRPC is a minimal RPC library to convert a server-side function of a type, (input: T) => Promise<S>
into (request: Request) => Promise<Response>
and make it callable from the client side in a type-safe way.
Currently, we support Next.js Route Handlers and AWS Lambda.
Features
🔮 Seamless client-server communication
You can call remote procedures just as seamless as calling local functions.
🛡️ Type safe
Server-client communication is made safe with request and response types in TypeScript which are used by both client and server.
🔥 Serverless first
Routing is delegated to other frameworks or infrastructures.
🤝 HTTP friendly
You can leverage full potential of HTTP functionalities, such as cache control headers.
🐁 Minimal dependencies
It depends only on Web APIs. Thus, it works on many platforms including Node.js, Deno, and edge runtimes.
🌊 Streaming support
Stream responses are transferred as JSON Lines and clients can consume them chunk by chunk.
Documentation
Here.
Examples
For all examples, see a examples
directory.
Next.js with Route Handlers
app/api/foo/route.ts
:
import { query } from "onerpc";
import { z } from "zod";
export const GET = query(z.number(), z.string(), (x) => `Hello, ${x}!`, {
path: "/api/foo",
});
app/page.tsx
:
import { type GET } from "@/app/api/foo/route";
import { query } from "onerpc/client";
export default async (): Promise<JSX.Element> => (
<div>{await query<typeof GET>("/api/foo", 42))}</div>
);
References
License
2 months ago
2 months ago
3 months ago
4 months ago
4 months ago
5 months ago
5 months ago
5 months ago
5 months ago
6 months ago
6 months ago
5 months ago
6 months ago
7 months ago
6 months ago
11 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago
12 months ago