juniper/changelog/0.9.0.md
2017-12-03 15:05:20 +01:00

2.6 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 - 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.

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.