Real World Rust Backend For Web APIs (GraphQL / REST)

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • async-graphql

    A GraphQL server library implemented in Rust

  • https://github.com/async-graphql/async-graphql maybe you need look this.

  • prisma-client-rust

    Type-safe database access for Rust

  • I also come from the NodeJS world where I used Prisma as an ORM / query builder. Turns out since the schema is language agnostic, anyone can make clients for it for any language, including Rust. I made a simple example which combines Prisma Client Rust, Actix Web, and Async GraphQL together, fairly straightforward to make.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • I also come from the NodeJS world where I used Prisma as an ORM / query builder. Turns out since the schema is language agnostic, anyone can make clients for it for any language, including Rust. I made a simple example which combines Prisma Client Rust, Actix Web, and Async GraphQL together, fairly straightforward to make.

  • Prisma

    Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB

  • I also come from the NodeJS world where I used Prisma as an ORM / query builder. Turns out since the schema is language agnostic, anyone can make clients for it for any language, including Rust. I made a simple example which combines Prisma Client Rust, Actix Web, and Async GraphQL together, fairly straightforward to make.

  • pothos

    Pothos GraphQL is library for creating GraphQL schemas in typescript using a strongly typed code first approach

  • Have you used Pothos? It's a way to make GraphQL schemas in TypeScript, in a type-safe way. So the creator of Prisma Client Rust is thinking about making a Pothos-style API based on the t builder pattern:

  • rust-backend-tutorials

    A sample project showing off how to use Actix (previously Rocket) effectively.

  • I've been making rocket.rs tutorials. Check out elibroftw/rust-backend-tutorials/ and YT: Rust for Backend Development . I have lots of stuff here like unstructured or structured JSON responses. One of the files is a REST API for the Tauri Updater showcasing how complicated things can be. When I make the next video I want to tackle on: MongoDB integration and Authentication. There's a README as well detailing my goals for the tutorials.

  • Rocket

    A web framework for Rust.

  • I've been making rocket.rs tutorials. Check out elibroftw/rust-backend-tutorials/ and YT: Rust for Backend Development . I have lots of stuff here like unstructured or structured JSON responses. One of the files is a REST API for the Tauri Updater showcasing how complicated things can be. When I make the next video I want to tackle on: MongoDB integration and Authentication. There's a README as well detailing my goals for the tutorials.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • spacedrive

    Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.

  • Taking a departure from REST and GraphQL, I'd suggest checking out rspc instead of GraphQL and Prisma Client Rust as your ORM. Both have been developed by a coworker and I for Spacedrive, the company we work for, and have provided what we believe is the best Rust + TypeScript stack that doesn't use GraphQL (new GrpahQL server incoming one day tho).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts