```rs struct Query;
impl Query { fn howdy(&self) -> &'static str { "partner" } }
async fn main() { 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();
} ```
Note: Minimum supported Rust version: 1.59.0 or later
All examples are in the sub-repository, located in the examples directory.
shell
git submodule update # update the examples repo
cd examples && cargo run --bin [name]
Integrations are what glue async-graphql
with your web server, here are provided ones, or you can build your own!
This crate offers the following features, all of which are not activated by default:
| feature | enables |
|:-------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| apollo_tracing
| Enable the Apollo tracing extension. |
| apollo_persisted_queries
| Enable the Apollo persisted queries extension. |
| log
| Enable the Logger extension. |
| tracing
| Enable the Tracing extension. |
| opentelemetry
| Enable the OpenTelemetry extension. |
| unblock
| Support Asynchronous reader for Upload |
| bson
| Integrate with the bson
crate. |
| chrono
| Integrate with the chrono
crate. |
| chrono-tz
| Integrate with the chrono-tz
crate. |
| url
| Integrate with the url
crate. |
| uuid
| Integrate with the uuid
crate. |
| uuid08
| Integrate with the uuid 0.8
crate. |
| string_number
| Enable the StringNumber. |
| dataloader
| Support DataLoader. |
| secrecy
| Integrate with the secrecy
crate. |
| decimal
| Integrate with the rust_decimal
crate. |
| bigdecimal
| Integrate with the bigdecimal
crate. |
| cbor
| Support for serde_cbor. |
| smol_str
| Integrate with the smol_str
crate. |
| hashbrown
| Integrate with the hashbrown
crate. |
| time
| Integrate with the time
crate. |
| tokio-sync
| Integrate with the tokio::sync::RwLock
and tokio::sync::Mutex
. |
| fast_chemail
| Integrate with the fast_chemail
crate. |
| tempfile
| Save the uploaded content in the temporary file. |
| dynamic-schema
| Support dynamic schema |
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 crate async_graphql_apollo_studio_extension
to make this avaliable.
async-graphql
in production?Licensed under either of