Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sinclairnick/webroute

πŸ•ΈοΈ Web APIs, from the route up
https://github.com/sinclairnick/webroute

client http openapi schema trpc typescript web web-standards

Last synced: 4 days ago
JSON representation

πŸ•ΈοΈ Web APIs, from the route up

Awesome Lists containing this project

README

        



Webroute


Web APIs, from the route-up.



Docs

β€’

Quick Start

β€’

Route

β€’

Client

β€’

OpenAPI

## Overview

Webroute helps you build self-sufficient, web-standard routes that have everything they need: path, method, I/O shape and validation, middleware and request handler.

It was invented to make building sophisticated APIs easier in the diverse ecosystem of serverless (but also serverful) full-stack and backend development.

### Inspiration

Webroute was heavily inspired by tRPC, but built specifically for HTTP. So if you're a fan of either, you'll probably like webroute.

## Features

- πŸ‘‹ Unopinionated and minimal API, by design
- πŸ”’ End-to-end type safety (including middleware)
- βœ… First-class validation and schema support
- πŸ•ΈοΈ HTTP based
- 🚏 Works well with serverless routes
- 🐳 ...or monolithic backends

## Example Usage

A basic webroute might look something like this:

```ts
import { route } from "@webroute/route";

const myRoute = route("/user/:id")
.use(authMiddleware)
.params(z.object({ id: z.string() }))
.handle(async (req) => {
// ...do work
});
```

Which is just a regular web-standard request handler:

```ts
const response = myRoute(new Request("..."));
```

Being web-standard and self-sufficient, it can be used directly, with no modification, with popular frameworks like `Next.js`, and `Hono` or within runtimes like `bun`, `deno` and node.

Read the [Quick Start](https://webroute.vercel.app/docs/building-apps/quick-start).

## What's in the box?

Webroute provides the functionality of a full-blown framework, without being one. Instead, it offers a handful of packages which can be selectively installed to fill in the gaps, when your use case requires it.

Webroute is "full-stack", in the sense it provides utilities and patterns for both the client-side and server-side. However, these client- and server-side tools are not dependent on the other - one can be used without the other.

## Compatibility

Webroute works with all runtimes or frameworks that conform to the WinterCG Minimum Web Standard.

### Frameworks

- [x] `Hono`
- [x] `Next.js`
- [x] `Remix`
- [x] `SolidStart`
- [x] `SvelteKit`

### Runtimes

- [x] `Bun`
- [x] `Deno`
- [x] `Node` (via adapter)
- [x] `Cloudflare Workes`
- [x] `Vercel Edge`