## [0.9.0] 2017-12-03 ## Changes This is the first release in a long time. Quite a few changes have accumulated since `0.8.1`, including multiple breaking changes. ### Custom derive & macros Juniper has gained custom derive implementations for input objects, objects and enums. * `#[derive(GraphQLInputObject)]` * `#[derive(GraphQLEnum)]` * `#[derive(GraphQLObject)]` The `graphql_enum!` and `graphql_input_object!` macros did not provide any more benefits, so they have been removed! All functionality is now covered by custom derive. Check the [docs](https://graphql-rust.github.io) to find out more. ### Web framework integrations - Iron & Rocket The iron and rocket integrations were removed from the main crate, and are now available via the [juniper_iron](https://crates.io/crates/juniper_iron) and [juniper_rocket](https://crates.io/crates/juniper_rocket) crates. ### FieldError rewrite (custom data) The `FieldError` type now supports custom data with the `Value` type from serde_json. Use this to populate the `data` field in returned errors. This also means that try! and `?` now work in resolvers, which is quite nice. Also, the `ResultExt` extension and the `jtry!` macro were removed, since they are redundant now! ### Dynamic Schemas Juniper has gained support for dynamic schemas, thanks to @srijs. That also means the type of `RootNode` has changed to include a lifetime. The repository was restructured to a multi crate workspace to enable several new features like custom_derive and an extracted parser. #[#66](https://github.com/graphql-rust/juniper/pull/66) ### Data Type Integrations Integrations with multiple popular crates was added to make working with them easier. * uuid * url * chrono ### Field Order To better comply with the specification, order of requested fields is now preserved. [#82](https://github.com/graphql-rust/juniper/issues/82 ### From/ToInputValue The `::from` and `::to` methods in `From/ToInputValue` were renamed to `from/to_input_value()` to not conflict with other methods. [#90](https://github.com/graphql-rust/juniper/pull/90) ### Other changes * Several small performance improvements * Use [fnv](https://github.com/servo/rust-fnv) hash map for better performance ## Contributors A big shoutout to the many contributors for this version, sorted alphabetically. * Cameron Eldridge * Christian Legnitto * Jacob Haslehurst * Jane Keibler * Magnus Hallin * rushmorem * Rushmore Mushambi * Sagie Gur-Ari * Sam Rijs * Stanko Krtalić * theduke * thomas-jeepe