pRPC

Type-safe, Python-first RPC

Build end-to-end typed APIs without OpenAPI pain, codegen, or boilerplate. The bridge between Python and Next.js.

Why pRPC?

Built for performance, developer experience, and safety.

One definition. Fully typed.

No manual schema files, instant type safety, and pure Python-first RPC.

SERVER.PY
class User(BaseModel):
    id: int
    name: str

@rpc
async def get_user(id: int) -> User:
    return User(id=id, name="pRPC User")

@rpc
async def update_user(id: int, name: str):
    return await db.users.update(id, name=name)
CLIENT.TS
const user = await client.get_user(1);
console.log(user.name);

// Full type-safety on mutations!
await client.update_user(1, "New Name");

Loved by developers

Built for performance, reliability, and the best developer experience.