{"id":13440214,"url":"https://github.com/graphql-rust/juniper","last_synced_at":"2025-05-14T22:02:37.399Z","repository":{"id":37493195,"uuid":"67941656","full_name":"graphql-rust/juniper","owner":"graphql-rust","description":"GraphQL server library for Rust","archived":false,"fork":false,"pushed_at":"2025-05-05T17:54:12.000Z","size":14093,"stargazers_count":5805,"open_issues_count":107,"forks_count":433,"subscribers_count":52,"default_branch":"master","last_synced_at":"2025-05-07T21:15:02.308Z","etag":null,"topics":["cargo","graphql","rust","rust-library","web"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/graphql-rust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-09-11T16:43:19.000Z","updated_at":"2025-05-07T20:55:55.000Z","dependencies_parsed_at":"2023-12-21T19:31:08.341Z","dependency_job_id":"99eb3937-824e-421b-922e-95b97b8cdc36","html_url":"https://github.com/graphql-rust/juniper","commit_stats":{"total_commits":1140,"total_committers":155,"mean_commits":7.354838709677419,"dds":0.8578947368421053,"last_synced_commit":"a648dd727519991c2e3c762af16eac027b2acec2"},"previous_names":["mhallin/juniper"],"tags_count":140,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-rust%2Fjuniper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-rust%2Fjuniper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-rust%2Fjuniper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/graphql-rust%2Fjuniper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/graphql-rust","download_url":"https://codeload.github.com/graphql-rust/juniper/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235685,"owners_count":22036962,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cargo","graphql","rust","rust-library","web"],"created_at":"2024-07-31T03:01:20.764Z","updated_at":"2025-05-14T22:02:32.391Z","avatar_url":"https://github.com/graphql-rust.png","language":"Rust","readme":"\u003cimg src=\"https://github.com/graphql-rust/juniper/raw/master/assets/logo/juniper-dark-word.png\" alt=\"Juniper\" width=\"500\" /\u003e\n\n\u003e GraphQL server library for Rust\n\n[![Build Status](https://dev.azure.com/graphql-rust/GraphQL%20Rust/_apis/build/status/graphql-rust.juniper)](https://dev.azure.com/graphql-rust/GraphQL%20Rust/_build/latest?definitionId=1)\n[![codecov](https://codecov.io/gh/graphql-rust/juniper/branch/master/graph/badge.svg)](https://codecov.io/gh/graphql-rust/juniper)\n[![Crates.io](https://img.shields.io/crates/v/juniper.svg?maxAge=2592000)](https://crates.io/crates/juniper)\n[![Gitter chat](https://badges.gitter.im/juniper-graphql/gitter.svg)](https://gitter.im/juniper-graphql/Lobby)\n\n---\n\n[GraphQL][graphql] is a data query language developed by Facebook intended to\nserve mobile and web application frontends.\n\n_Juniper_ makes it possible to write GraphQL servers in Rust that are\ntype-safe and blazingly fast. We also try to make declaring and resolving\nGraphQL schemas as convenient as Rust will allow.\n\nJuniper does not include a web server - instead it provides building blocks to\nmake integration with existing servers straightforward. It optionally provides a\npre-built integration for the [Actix][actix], [Hyper][hyper], [Rocket], and [Warp][warp] frameworks, including\nembedded [Graphiql][graphiql] and [GraphQL Playground][playground] for easy debugging.\n\n- [Cargo crate](https://crates.io/crates/juniper)\n- [API Reference][docsrs]\n- [Book][book]: Guides and Examples ([current][book] | [master][book_master])\n\nThe book is also available for the master branch and older versions published after 0.11.1. See the [book index][book_index].\n\n\n## Getting Started\n\nThe best place to get started is the [Juniper Book][book], which contains\nguides with plenty of examples, covering all features of Juniper. (very much WIP)\n\nTo get started quickly and get a feel for Juniper, check out the\n[Quickstart][book_quickstart] section.\n\nFor specific information about macros, types and the Juniper api, the\n[API Reference][docsrs] is the best place to look.\n\nYou can also check out the [Star Wars schema][test_schema_rs] to see a complex\nexample including polymorphism with traits and interfaces.\nFor an example of web framework integration,\nsee the [actix][actix_examples], [axum][axum_examples], [hyper][hyper_examples], [rocket][rocket_examples], and [warp][warp_examples] examples folders.\n\n## Features\n\nJuniper supports the full GraphQL query language according to the\n[specification (October 2021)][graphql_spec], including interfaces, unions, schema\nintrospection, and validations. It can also output the schema in the [GraphQL Schema Language][schema_language].\n\nAs an exception to other GraphQL libraries for other languages, Juniper builds\nnon-null types by default. A field of type `Vec\u003cEpisode\u003e` will be converted into\n`[Episode!]!`. The corresponding Rust type for e.g. `[Episode]` would be\n`Option\u003cVec\u003cOption\u003cEpisode\u003e\u003e\u003e`.\n\nJuniper is agnostic to serialization format and network transport.\n\nJuniper supports both asynchronous and synchronous execution using `execute()` and `execute_sync()` respectively. Asynchronous execution is runtime agnostic.\n\nJuniper follows a [code-first approach][schema_approach] to defining GraphQL schemas. If you would like to use a [schema-first approach][schema_approach] instead, consider [juniper-from-schema][] for generating code from a schema file.\n\n## Integrations\n\n### Data types\n\nJuniper has automatic integration with some very common Rust crates to make\nbuilding schemas a breeze. The types from these crates will be usable in\nyour Schemas automatically.\n\n- [uuid][uuid]\n- [url][url]\n- [chrono][chrono]\n- [chrono-tz][chrono-tz]\n- [jiff][jiff]\n- [time][time]\n- [bson][bson]\n\n### Web Frameworks\n\n- [actix][actix]\n- [axum][axum]\n- [hyper][hyper]\n- [rocket][rocket]\n- [warp][warp]\n\n## Guides \u0026 Examples\n\n- [Juniper + actix-web example](https://github.com/actix/examples/tree/master/graphql/juniper)\n\n## API Stability\n\nJuniper has not reached 1.0 yet, thus some API instability should be expected.\n\n[actix]: https://actix.rs/\n[axum]: https://docs.rs/axum\n[graphql]: http://graphql.org\n[graphiql]: https://github.com/graphql/graphiql\n[playground]: https://github.com/prisma/graphql-playground\n[graphql_spec]: https://spec.graphql.org/October2021\n[schema_language]: https://graphql.org/learn/schema/#type-language\n[schema_approach]: https://blog.logrocket.com/code-first-vs-schema-first-development-graphql/\n[test_schema_rs]: https://github.com/graphql-rust/juniper/blob/master/juniper/src/tests/fixtures/starwars/schema.rs\n[tokio]: https://github.com/tokio-rs/tokio\n[actix_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_actix/examples\n[axum_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_axum/examples\n[hyper_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_hyper/examples\n[rocket_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_rocket/examples\n[hyper]: https://hyper.rs\n[rocket]: https://rocket.rs\n[book]: https://graphql-rust.github.io/juniper\n[book_master]: https://graphql-rust.github.io/juniper/master\n[book_index]: https://graphql-rust.github.io/juniper\n[book_quickstart]: https://graphql-rust.github.io/juniper/quickstart.html\n[docsrs]: https://docs.rs/juniper\n[warp]: https://github.com/seanmonstar/warp\n[warp_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_warp/examples\n[uuid]: https://crates.io/crates/uuid\n[url]: https://crates.io/crates/url\n[chrono]: https://crates.io/crates/chrono\n[chrono-tz]: https://crates.io/crates/chrono-tz\n[jiff]: https://crates.io/crates/jiff\n[time]: https://crates.io/crates/time\n[bson]: https://crates.io/crates/bson\n[juniper-from-schema]: https://github.com/davidpdrsn/juniper-from-schema\n","funding_links":[],"categories":["Rust","Libraries","库 Libraries","库","后端开发框架及项目","graphql","web","Implementations","Uncategorized","GraphQL [🔝](#readme)","\u003ca name=\"Rust\"\u003e\u003c/a\u003eRust"],"sub_categories":["Web programming","网络编程 Web programming","网页编程","管理面板","Rust","Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphql-rust%2Fjuniper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgraphql-rust%2Fjuniper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgraphql-rust%2Fjuniper/lists"}