# Juniper Juniper is a [GraphQL] server library for Rust. Build type-safe and fast API servers with minimal boilerplate and configuration. [GraphQL][graphql] is a data query language developed by Facebook intended to serve mobile and web application frontends. _Juniper_ makes it possible to write GraphQL servers in Rust that are type-safe and blazingly fast. We also try to make declaring and resolving GraphQL schemas as convenient as possible as Rust will allow. Juniper does not include a web server - instead it provides building blocks to make integration with existing servers straightforward. It optionally provides a pre-built integration for the [Hyper][hyper], [Iron][iron], [Rocket], and [Warp][warp] frameworks, including embedded [Graphiql][graphiql] for easy debugging. - [Cargo crate](https://crates.io/crates/juniper) - [API Reference][docsrs] ## Features Juniper supports the full GraphQL query language according to the [specification][graphql_spec], including interfaces, unions, schema introspection, and validations. It does not, however, support the schema language. As an exception to other GraphQL libraries for other languages, Juniper builds non-null types by default. A field of type `Vec` will be converted into `[Episode!]!`. The corresponding Rust type for e.g. `[Episode]` would be `Option>>`. ## Integrations ### Data types Juniper has automatic integration with some very common Rust crates to make building schemas a breeze. The types from these crates will be usable in your Schemas automatically. - [uuid][uuid] - [url][url] - [chrono][chrono] - [bson][bson] ### Web Frameworks - [hyper][hyper] - [rocket][rocket] - [iron][iron] - [warp][warp] ## API Stability Juniper has not reached 1.0 yet, thus some API instability should be expected. [graphql]: http://graphql.org [graphiql]: https://github.com/graphql/graphiql [iron]: https://github.com/iron/iron [graphql_spec]: http://facebook.github.io/graphql [test_schema_rs]: https://github.com/graphql-rust/juniper/blob/master/juniper/src/tests/schema.rs [tokio]: https://github.com/tokio-rs/tokio [hyper_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_hyper/examples [rocket_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_rocket/examples [iron_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_iron/examples [hyper]: https://hyper.rs [rocket]: https://rocket.rs [book]: https://graphql-rust.github.io [book_quickstart]: https://graphql-rust.github.io/quickstart.html [docsrs]: https://docs.rs/juniper [warp]: https://github.com/seanmonstar/warp [warp_examples]: https://github.com/graphql-rust/juniper/tree/master/juniper_warp/examples [uuid]: https://crates.io/crates/uuid [url]: https://crates.io/crates/url [chrono]: https://crates.io/crates/chrono [bson]: https://crates.io/crates/bson