graphql-rust/juniper

GraphQL server library for Rust

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 26 minutes ago
Added to GitGenius on September 11th, 2026
Created on September 11th, 2016
Open Issues & Pull Requests: 104 (+0)
GitHub issues: Enabled
Number of forks: 442
Total Stargazers: 5,968 (+0)
Total Subscribers: 50 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 34.3 hours
Mean response time: 223.9 days
90th percentile: 1225.9 days
Tracked items: 24

How this project is maintained

Around half of the issues opened in the past year never receive a reply. Only 3% of issues opened in the past year have been closed. Three people close 96% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 10
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 1,222 days
Stale 30+ days: 10
Stale 90+ days: 10

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • k::api (9)
  • k::integration (8)
  • enhancement (7)
  • support (7)
  • feature (6)
  • k::design (5)
  • bug (4)
  • lib::axum (3)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Juniper is a GraphQL server library for Rust that enables developers to build type-safe and performant GraphQL servers with convenient schema declaration and resolution.

Juniper solves the problem of implementing GraphQL servers in Rust by providing type-safe abstractions that leverage Rust's compiler to catch errors at build time rather than runtime. The library follows a code-first approach, allowing developers to define schemas through Rust code and macros rather than schema files. It supports the full GraphQL specification including interfaces, unions, schema introspection, and validation. A distinctive feature is that Juniper builds non-null types by default, meaning a field of type `Vec<Episode>` becomes `[Episode!]!` in GraphQL, which aligns with Rust's type system philosophy. The library supports both synchronous and asynchronous execution in a runtime-agnostic manner.

Juniper suits projects where type safety and performance are priorities and where developers prefer defining schemas in code rather than through schema files. The library does not include its own web server; instead it provides building blocks for integration with existing frameworks. It offers optional pre-built integrations with Actix, Axum, Hyper, Rocket, and Warp, each including embedded GraphiQL and GraphQL Playground for debugging. Juniper also includes automatic integration with common Rust crates like UUID, URL, Chrono, and BSON, making it straightforward to use these types in schemas. For teams preferring schema-first development, the README names juniper-from-schema as an alternative that generates code from schema files.

The project maintains comprehensive documentation through a book covering guides and examples for all features, alongside API reference documentation. Development activity shows ongoing maintenance with support for multiple web framework integrations and regular updates to align with GraphQL specification changes. The library has not reached version 1.0, so some API instability should be expected as the project continues to evolve.