juniper/changelog/0.9.0.md
2017-12-03 18:33:35 +01:00

2.8 KiB

[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 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 and 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

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

Other changes

  • Several small performance improvements
  • Use fnv hash map for better performance

Contributors

A big shoutout to the many contributors for this version, sorted alphabetically.