19 releases (unstable)

1.0.0-rc.5 Jul 21, 2023
0.4.1 Feb 7, 2025
0.3.1 Dec 3, 2024
0.3.0 Nov 20, 2024
0.0.4 Jul 31, 2022

#398 in Asynchronous

Download history 161/week @ 2025-01-04 298/week @ 2025-01-11 656/week @ 2025-01-18 395/week @ 2025-01-25 245/week @ 2025-02-01 206/week @ 2025-02-08 161/week @ 2025-02-15 118/week @ 2025-02-22 147/week @ 2025-03-01 95/week @ 2025-03-08 120/week @ 2025-03-15 82/week @ 2025-03-22 41/week @ 2025-03-29 65/week @ 2025-04-05 49/week @ 2025-04-12 12/week @ 2025-04-19

188 downloads per month
Used in 3 crates

MIT license

160KB
3.5K SLoC

Logo

rspc

🚧 Work in progress 🚧

A blazing fast and easy to use TRPC-like server for Rust.

Website



Example

You define a rspc router and attach procedures to it like below. This will be very familiar if you have used trpc or GraphQL before.

let router = <rspc::Router>::new()
    .query("version", |t| {
        t(|ctx, input: ()| "0.0.1")
    })
    .mutation("helloWorld", |t| {
        t(|ctx, input: ()| async { "Hello World!" })
    });

Features:

  • Per Request Context - Great for database connection & authentication data
  • Middleware - With support for context switching
  • Merging routers - Great for separating code between files

Inspiration

This project is based off trpc and was inspired by the bridge system Jamie Pine designed for Spacedrive. A huge thanks to everyone who helped inspire this project!

Dependencies

~2–45MB
~668K SLoC