async-graphql

一个用 Rust 实现的 GraphQL 服务器库。「The GraphQL server library implemented by rust」

Github星跟蹤圖

A GraphQL server library implemented in Rust

Async-graphql is a high-performance server-side library that supports all GraphQL specifications.

Safety

This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

Stability: Unstable & Experimental

This project doesn't currently follow Semantic Versioning (SemVer), and there can be breaking changes on any version numbers. We will begin following SemVer once the project reaches v2.0.0

Even though this project is above v1.0.0, we are rapidly changing and improving the API. This has caused versioning problems that aren't easily resolved because the project became popular very quickly (it was only started in March 2020).

We currently plan to start following SemVer once we reach the v2.0.0 release, which will happen once the API starts to stabilize. Unfortunately, we don't currently have the timeline for this.

In accordance with Rust's policy on pre-1.0.0 crates, we will try to keep breaking changes limited to minor version changes, but if things don't seem to be compiling after an upgrade, it is likely you'll need to dive into compiler errors to update some syntax that changed. Feel free to open an issue if something seems weird!

Features

  • Fully support async/await
  • Type safety
  • Rustfmt friendly (Procedural Macro)
  • Custom scalar
  • Minimal overhead
  • Easy integration (hyper, actix_web, tide ...)
  • Upload files (Multipart request)
  • Subscription (WebSocket transport)
  • Custom extension
  • Apollo Tracing extension
  • Limit query complexity/depth
  • Error Extensions
  • Apollo Federation

Examples

If you are just getting started, we recommend checking out our examples at: https://github.com/async-graphql/examples

To see how you would create a Relay-compliant server using async-graphql, warp, diesel & postgresql, you can also check out a real-world example at: https://github.com/phated/twentyfive-stars

Benchmark

Ensure that there is no CPU-heavy process in background!

cd benchmark

#measure all with system malloc
cargo bench

#measure only chat run
cargo bench -- "chat run"

#measure all with jemalloc
cargo bench --features jemalloc

#measure only simple run with jemalloc 
cargo bench --features jemalloc -- "simple run"

Now HTML report is available at benchmark/target/criterion/report

Read more here: https://bheisler.github.io/criterion.rs/book/criterion_rs.html

Integrations

License

Licensed under either of

References

Contribute

Welcome to contribute !

主要指標

概覽
名稱與所有者async-graphql/async-graphql
主編程語言Rust
編程語言Rust (語言數: 2)
平台
許可證Apache License 2.0
所有者活动
創建於2020-03-01 10:54:40
推送於2025-03-20 04:48:38
最后一次提交2025-03-20 12:12:09
發布數1779
最新版本名稱v7.0.13 (發布於 2024-12-10 10:35:36)
第一版名稱async-graphql@1.13.5 (發布於 2020-05-27 18:34:06)
用户参与
星數3.5k
關注者數27
派生數483
提交數3k
已啟用問題?
問題數1071
打開的問題數208
拉請求數439
打開的拉請求數25
關閉的拉請求數53
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?