Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork499
A GraphQL server library implemented in Rust
License
Apache-2.0, MIT licenses found
Licenses found
async-graphql/async-graphql
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
a high-performance graphql server library that's fully specification compliant
Book •中文文档 •Docs •GitHub repository •Cargo package
This crate uses#![forbid(unsafe_code)]
to ensure everything is implemented in 100% safe Rust.
structQuery;#[Object]implQuery{fnhowdy(&self) ->&'staticstr{"partner"}}asyncfnmain(){let schema =Schema::build(Query,EmptyMutation,EmptySubscription).finish();let app =Route::new().at("/",get(graphiql).post(GraphQL::new(schema)));println!("GraphiQL: http://localhost:8000");Server::new(TcpListener::bind("0.0.0.0:8000")).run(app).await.unwrap();}
- Fully supports async/await
- Type safety
- Rustfmt friendly (Procedural Macro)
- Custom scalars
- Minimal overhead
- Easy integration (poem, actix_web, tide, warp, rocket ...)
- Upload files (Multipart request)
- Subscriptions (WebSocket transport)
- Custom extensions
- Error extensions
- Limit query complexity/depth
- Batch queries
- Apollo Persisted Queries
- Apollo Tracing extension
- Apollo Federation(v2)
Note: Minimum supported Rust version: 1.59.0 or later
All examples are in thesub-repository, located in the examples directory.
git submodule update# update the examples repocd examples&& cargo run --bin [name]
Integrations are what glueasync-graphql
with your web server, here are provided ones, or you can build your own!
- Poemasync-graphql-poem
- Actix-webasync-graphql-actix-web
- Warpasync-graphql-warp
- Tideasync-graphql-tide
- Rocketasync-graphql-rocket
- Axumasync-graphql-axum
This crate offers the following features, all of which are not activated by default:
feature | enables |
---|---|
apollo_tracing | Enable theApollo tracing extension. |
apollo_persisted_queries | Enable theApollo persisted queries extension. |
log | Enable theLogger extension. |
tracing | Enable theTracing extension. |
opentelemetry | Enable theOpenTelemetry extension. |
unblock | SupportAsynchronous reader for Upload |
bson | Integrate with thebson crate. |
chrono | Integrate with thechrono crate. |
chrono-tz | Integrate with thechrono-tz crate. |
url | Integrate with theurl crate. |
uuid | Integrate with theuuid crate. |
uuid08 | Integrate with theuuid 0.8 crate. |
string_number | Enable theStringNumber. |
dataloader | SupportDataLoader. |
secrecy | Integrate with thesecrecy crate. |
decimal | Integrate with therust_decimal crate. |
bigdecimal | Integrate with thebigdecimal crate. |
cbor | Support forserde_cbor. |
smol_str | Integrate with thesmol_str crate. |
hashbrown | Integrate with thehashbrown crate. |
time | Integrate with thetime crate. |
tokio-sync | Integrate with thetokio::sync::RwLock andtokio::sync::Mutex . |
fast_chemail | Integrate with thefast_chemail crate. |
One of the tools used to monitor your graphql server in production is Apollo Studio. Apollo Studio is a cloud platform that helps you build, monitor, validate, and secure your organization's data graph.Add the extension crateasync_graphql_apollo_studio_extension
to make this avaliable.
- Vector
- DiveDB
- Kairos Sports tech
- AxieInfinity
- Nando's
- Prima.it
- VoxJar
- Zenly
- Brevz
- thorndyke
- My Data My Consent
- rust-actix-graphql-sqlx-postgresqlUsing GraphQL with Rust and Apollo Federation
- entity-rs A simplistic framework based on TAO, Facebook's distributed database for Social Graph.
- vimwiki-server Provides graphql server to inspect and manipulate vimwiki files.
- Diana Diana is a GraphQL system for Rust that's designed to work as simply as possible out of the box, without sacrificing configuration ability.
- cindythink
- sudograph
- Async GraphQL with Rust
- GraphQL in Rust
- How to implement a Rust micro-service using Rocket, GraphQL, PostgreSQL
- Running GraphQL on Lambda with Rust
- GraphQL
- GraphQL Multipart Request
- GraphQL Cursor Connections Specification
- GraphQL over WebSocket Protocol
- Apollo Tracing
- Apollo Federation
Licensed under either of
- Apache License, Version 2.0,(LICENSE-APACHE orhttp://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT orhttp://opensource.org/licenses/MIT)at your option.
About
A GraphQL server library implemented in Rust
Topics
Resources
License
Apache-2.0, MIT licenses found
Licenses found
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.