PackageTrack
Sign in Get early access

cynic-proc-macros

Procedural macro crate for cynic - a code first GraphQL client for Rust

3.14.0 4.6M downloads/mo #4690 most downloaded on crates.io source

What this package is like to depend on

Last release 1 months ago

12 Jul 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 69 of 69 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

73 releases · first in 2020

4 releases in the last 12 months

see the full history below

Release timeline

73 releases · Jun 2020 to Jul 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 73
  1. 3.14.0 12 Jul 2026
    Release notes

    New Features

    • StreamingOperation now exposes its query, variables & operation_name

    Changes

    • The generator had a very large refactor in this release, so expect some minor changes to its output.
      • In particular some things will be in a slightly different order and some calcaulated names may have changed.
    • The names of fragments should now be preserved in generator output
    • Vastly improved handling of fragments in generator (#1218)
    • Correctly deal with interfaces in the generator (#1219)

    Bug Fixes

    Contributors

    Thanks to the people who contributed to this release:

    Open source →
    Release notes

    New Features

    • StreamingOperation now exposes its query, variables & operation_name

    Changes

    • The generator had a very large refactor in this release, so expect some minor changes to its output.
      • In particular some things will be in a slightly different order and some calcaulated names may have changed.
    • The names of fragments should now be preserved in generator output
    • Vastly improved handling of fragments in generator (#1218)
    • Correctly deal with interfaces in the generator (#1219)

    Bug Fixes

    Open source →
  2. 3.13.2 11 Apr 2026
    Release notes

    Bug Fixes

    • Fixed a possible panic when reading schemas or queries with short block
      strings.
    Open source →
    Release notes

    Bug Fixes

    • Fixed a possible panic when reading schemas or queries with short block strings.
    Open source →
  3. 3.13.1 28 Feb 2026
    Release notes

    Bug Fixes

    • QueryVariables derive will not show errors from missing_docs lint
      (#1201)

    Contributors

    Thanks to the people who contributed to this release:

    Open source →
    Release notes

    Bug Fixes

    • QueryVariables derive will not show errors from missing_docs lint (#1201)
    Open source →
  4. 3.13.0 27 Feb 2026
    Release notes

    New Features

    • Feature flags are now supported on on arguments (#1181)
    • An InputObject on a oneOf type will automatically skip serializing all of
      it's null fields (#1179)
    • InputObject can now be derived on enums for oneOf inputs (#1174)
    • Operation is now Clone (#1170)
    • The reqwest integation now accepts &Operation as well as Operation (#1169)
    • The QueryFragment derive now supports the rename_all attribute (#1167)
    • add @oneOf support to introspection (#1177)
    • oneOf input objects are now supported in the in the generator (#1175)
    • cynic-introspection now supports additions from the 2025 spec (#1180)
    • cynic-querygen now has a field_overrides option that can be used to
      customize the type of individual scalar fields in generated QueryFragments (#1184)

    Bug Fixes

    • cynic_querygen has a new interface based around the Generator type
      (#1187)
    • Fixed an issue with lifetime detection on nested input objects in the
      generator

    Deprecations

    • The old intrerface to cynic_querygen has been marked deprecated

    Changes

    • Updated reqwest to 0.13 (#1190)
    • MSRV is now 1.85 (#1172)
    • Updated rkyv to 0.8.0 (#1110)
    Open source →
    Release notes

    Note that this is the last release that will be pushed to github - development of cynic will continue over on codeberg.org/obmarg/cynic.

    New Features

    • Feature flags are now supported on on arguments (#1181)
    • An InputObject on a oneOf type will automatically skip serializing all of it's null fields (#1179)
    • InputObject can now be derived on enums for oneOf inputs (#1174)
    • Operation is now Clone (#1170)
    • The reqwest integation now accepts &Operation as well as Operation (#1169)
    • The QueryFragment derive now supports the rename_all attribute (#1167)
    • add @oneOf support to introspection (#1177)
    • oneOf input objects are now supported in the in the generator (#1175)
    • cynic-introspection now supports additions from the 2025 spec (#1180)
    • cynic-querygen now has a field_overrides option that can be used to customize the type of individual scalar fields in generated QueryFragments (#1184)

    Bug Fixes

    • cynic_querygen has a new interface based around the Generator type (#1187)
    • Fixed an issue with lifetime detection on nested input objects in the generator

    Deprecations

    • The old intrerface to cynic_querygen has been marked deprecated

    Changes

    • Updated reqwest to 0.13 (#1190)
    • MSRV is now 1.85 (#1172)
    • Updated rkyv to 0.8.0 (#1110)
    Open source →
  5. 3.12.0 19 Aug 2025
    Release notes

    New Features

    • The graphql_type attribute on fields of variable structs can now specify
      generic types instead of just single named types.

    Bug Fixes

    • Fix using &str on input fields of type String (#1160)
    • Hide the assert_type_eq_all and assert_impl macros from the docs - these
      were never public API and should always have been hidden (#1159)
    Open source →
    Release notes

    New Features

    • The graphql_type attribute on fields of variable structs can now specify generic types instead of just single named types.

    Bug Fixes

    • Fix using &str on input fields of type String (#1160)
    • Hide the assert_type_eq_all and assert_impl macros from the docs - these were never public API and should always have been hidden (#1159)
    Open source →
  6. 3.11.0 13 May 2025
    Release notes

    New Features

    • Optional fields on a QueryFragment can now be marked with
      #[cynic(default)]. If this directive is present the field does not have to
      be wrapped in Option and the Default impl of the type will be used if the
      field is null (#1144)
    • The generator now supports directives (#1139)
    • Users can opt out of Deserialize for QueryFragment (#1147)
    • cynic-introspection now includes directives in its SDL (#1140)

    Bug Fixes

    • Fields can now have use types with generic parametesr (e.g. DateTime<Utc>
      is now allowed) (#1131)
    • The generator now correctly applies lifetimes to recursive input fields when
      they are needed (#1151)
    Open source →
    Release notes

    New Features

    • Optional fields on a QueryFragment can now be marked with #[cynic(default)]. If this directive is present the field does not have to be wrapped in Option and the Default impl of the type will be used if the field is null (#1144)
    • The generator now supports directives (#1139)
    • Users can opt out of Deserialize for QueryFragment (#1147)
    • cynic-introspection now includes directives in its SDL (#1140)

    Bug Fixes

    • Fields can now have use types with generic parametesr (e.g. DateTime<Utc> is now allowed) (#1131)
    • The generator now correctly applies lifetimes to recursive input fields when they are needed (#1151)
    Open source →
  7. 3.10.0 10 Feb 2025
    Release notes

    New Features

    • Added initial suppport for directives: @skip, @include are supported, and
      other field level directives can be used provided they don't require
      specific client support (#900)

    Bug Fixes

    • Parsing will no longer fail if keywords like mutation are used as enum
      values. (#1128)

    Changes

    • Querygen now parses schemas and queries with cynic_parser
      (#1124, #1125)

    Changes

    • Bumped the MSRV to 1.80
    Open source →
    Release notes

    New Features

    • Added initial suppport for directives: @skip, @include are supported, and other field level directives can be provided provided they don't require specific client support (#900)

    Bug Fixes

    • Parsing will no longer fail if keywords like mutation are used as enum values. (#1128)

    Changes

    • Querygen now parses schemas and queries with cynic_parser (#1124, #1125)

    Changes

    • Bumped the MSRV to 1.80
    Open source →
  8. 3.9.1 03 Dec 2024
    Release notes

    Bug Fixes

    • Fields named str are now supported (#1108)

    Changes

    • Fixed all rust 1.83 clippy lints (#1106)

    Contributors

    Thanks to the people who contributed to this release:

    Open source →
    Release notes

    Bug Fixes

    • Fields named str are now supported (#1108)

    Changes

    • Fixed all rust 1.83 clippy lints (#1106)
    Open source →
  9. 3.9.0 12 Nov 2024
    Release notes

    Changes

    • Bumped cynic-parser dependency
    • Removed dependency on counter (#1027)

    Changes

    • MSRV is now 1.76

    Contributors

    Thanks to the people who contributed to this release:

    Open source →
    Release notes

    Changes

    • Bumped cynic-parser dependency
    • Removed dependency on counter (#1027)

    Changes

    • MSRV is now 1.76
    Open source →
  10. 3.8.0 29 Aug 2024
    Release notes

    New Features

    • Added OperationBuilder::build_with_variables_inlined which can be used to
      build a query string with variables inlined (#1012)
    • Added QueryVariableLiterals, a trait & derive macro that can be used to
      enable dynamic fetching of variables (#1009)

    Bug Fixes

    • The generator now consistently renames arguments that share names with rust
      keywords (#1005)
    • The generator will no longer panic when using a fragment with an interface
      as its type condition (#994)

    Bug Fixes

    • Tidied up the output of object & list literals in the clients GraphQl output.
    Open source →
    Release notes

    New Features

    • Added OperationBuilder::build_with_variables_inlined which can be used to build a query string with variables inlined (#1012)
    • Added QueryVariableLiterals, a trait & derive macro that can be used to enable dynamic fetching of variables (#1009)

    Bug Fixes

    • The generator now consistently renames arguments that share names with rust keywords (#1005)
    • The generator will no longer panic when using a fragment with an interface as its type condition (#994)

    Bug Fixes

    • Tidied up the output of object & list literals in the clients GraphQl output.
    Open source →
  11. 3.7.3 04 Jun 2024
    Release notes

    Changes

    • update Cargo.toml dependencies
    • update rust crate trycmd to 0.15 (#971)
    Open source →
    Release notes

    Changes

    • update Cargo.toml dependencies
    • update rust crate trycmd to 0.15 (#971)
    Open source →
  12. 3.7.2 22 May 2024
    Release notes

    Changes

    • Pulled in the latest cynic-parser, this should have no user facing impact.
    Open source →
    Release notes

    Changes

    • Pulled in the latest cynic-parser, this should have no user facing impact.
    Open source →
  13. 3.7.1 14 May 2024
    Release notes

    Bug Fixes

    • Schema file should no longer cause clippy warnings if clippy::nursery is on.
      (#951)
    Open source →
    Release notes

    Bug Fixes

    • Schema file should no longer cause clippy warnings if clippy::nursery is on. (#951)
    Open source →
  14. 3.7.0 28 Apr 2024
    Release notes

    New Features

    • Users of the reqwest integration can now control the type used for error
      extensions (#928)

    Changes

    • MSRV is now officially 1.72 (although it was unofficially 1.72 before)
    Open source →
    Release notes

    New Features

    • Users of the reqwest integration can now control the type used for error extensions (#928)

    Changes

    • MSRV is now officially 1.72 (although it was unofficially 1.72 before)
    Open source →
  15. 3.6.1 15 Apr 2024
    Release notes

    Fixes

    • Fixed a regresion in 3.6.0: schemas with directives on the schema
      definition will now parse
    Open source →
    Release notes

    Bug Fixes

    • Fixed a regresion in 3.6.0: schemas with directives on the schema definition will now parse
    Open source →
  16. 3.6.0 12 Apr 2024
    Release notes

    Fixed

    • Fixed an issue where derive(Scalar) would fail on types with a serialize
      function that was not serde::Serialize::serialize (#909)

    Changed

    • Improved errors when users use a derive on the wrong kind of GraphQL type
      (#889)
    • cynic-codegen now uses cynic-parser instead of graphql-parser (#824)
    Open source →
    Release notes

    Bug Fixes

    • Fixed an issue where derive(Scalar) would fail on types with a serialize function that was not serde::Serialize::serialize (#909)

    Changes

    • Improved errors when users use a derive on the wrong kind of GraphQL type (#889)
    • cynic-codegen now uses cynic-parser instead of graphql-parser (#824)
    Open source →
  17. 3.5.1 04 Apr 2024
    Release notes

    Changes

    • Operation is now Debug when Variables is Debug
    Open source →
    Release notes

    Changes

    • Operation is now Debug when Variables is Debug
    Open source →
  18. 3.5.0 25 Mar 2024
    Release notes

    Changes

    • Updates reqwest to 0.12 - this is breaking for users of the http-reqwest or
      http-reqwest-blocking features who will need to upgrade to reqwest 0.12.
    • Fixed some unused code warnings
    Open source →
    Release notes

    Changes

    • Updates reqwest to 0.12 - this is breaking for users of the http-reqwest or http-reqwest-blocking features who will need to upgrade to reqwest 0.12.
    • Fixed some unused code warnings
    Open source →
  19. 3.4.3 22 Jan 2024
    Release notes

    Bug Fixes

    • Handle disabled introspection better in cynic-introspection & cynic-cli.
      This is technically a breaking change, but it's small and fixes a bug so I'll
      allow it.
    Open source →
    Release notes

    Bug Fixes

    • Handle disabled introspection better in cynic-introspection & cynic-cli. This is technically a breaking change, but it's small and fixes a bug so I'll allow it.
    Open source →
  20. 3.4.2 22 Jan 2024
    Release notes

    Changes

    • If you accidentally write a recursive query without the recurse attribute
      you'll now get a panic suggesting to use recurse. This may cause false
      positives if you're writing a particularly large query - users should raise
      an issue if I've picked a number that's too low.

    Bug Fixes

    • The recurse attribute now works if an InlineFragments derive is used in
      the recursive path.
    Open source →
    Release notes

    Changes

    • If you accidentally write a recursive query without the recurse attribute you'll now get a panic suggesting to use recurse. This may cause false positives if you're writing a particularly large query - users should raise an issue if I've picked a number that's too low.

    Bug Fixes

    • The recurse attribute now works if an InlineFragments derive is used in the recursive path.
    Open source →
  21. 3.4.1 22 Jan 2024
    Release notes

    Bug Fixes

    • Fixed an issue with object literals inside arguments
    Open source →
    Release notes

    Bug Fixes

    • Fixed an issue with object literals inside arguments
    Open source →
  22. 3.4.0 09 Jan 2024
    Release notes

    New Features

    • Enums can now opt out of exhaustiveness checking with the non_exhaustive
      attribute
    Open source →
    Release notes

    New Features

    • Enums can now opt out of exhaustiveness checking with the non_exhaustive attribute
    Open source →
  23. 3.3.3 09 Jan 2024
    Release notes

    Bug Fixes

    • cynic-introspection now omits the {} if a definition is empty.
    Open source →
    Release notes

    Bug Fixes

    • cynic-introspection now omits the {} if a definition is empty.
    Open source →
  24. 3.3.2 08 Jan 2024
    Release notes

    Changes

    • GraphQlResponse is now Clone provided its contents are also
    Open source →
    Release notes

    Changes

    • GraphQlResponse is now Clone provided its contents are also
    Open source →
  25. 3.3.1 05 Jan 2024
    Release notes

    Bug Fixes

    • Fixed an issue where #[cynic(flatten)] would not work on scalar fields.
    Open source →
    Release notes

    Bug Fixes

    • Fixed an issue where #[cynic(flatten)] would not work on scalar fields.
    Open source →
  26. 3.3.0 14 Nov 2023
    Release notes

    New Features

    • The QueryVariables derive now supports skip_serializing_if
    • cynic-cli has a new querygen command as an alternative to the
      web-based generator (Note: this is experimental and may be subject
      to change)

    Changes

    • Operations generated by cynic will now omit un-used variables
    • The #[cynic(spread)] attribute now outputs an inline fragment in GraphQL

    Fixes

    • Using #[cynic(spread)] more than once no longer results in rust compile
      errors.
    • The generator won't output an incorrect comma in between attributes in
      certain circumstances.
    • The generator now uses the same re-casing as codegen - leading to less bugs.
    • The generator will now rename more QueryFragment fields that require it.
    • cynic-introspection now escapes deprecated strings that require it in SDL.
    Open source →
    Release notes

    New Features

    • The QueryVariables derive now supports skip_serializing_if
    • cynic-cli has a new querygen command as an alternative to the web-based generator (Note: this is experimental and may be subject to change)

    Changes

    • Operations generated by cynic will now omit un-used variables
    • The #[cynic(spread)] attribute now outputs an inline fragment in GraphQL

    Fixes

    • Using #[cynic(spread)] more than once no longer results in rust compile errors.
    • The generator won't output an incorrect comma in between attributes in certain circumstances.
    • The generator now uses the same re-casing as codegen - leading to less bugs.
    • The generator will now rename more QueryFragment fields that require it.
    • cynic-introspection now escapes deprecated strings that require it in SDL.
    Open source →
  27. 3.2.2 26 Jun 2023
    Release notes

    Bug Fixes

    • Various SDL output fixes in cynic-introspection:
      • It no longer prints ? where it means !
      • It omits the schema definition if all the root operation types are using
        default names
      • Enum values no longer have empty lines between them
      • We no longer erronously print the Boolean scalar
      • Fields now have a hacky heuristic that decides when to wrap them
      • Unions also have a wrapping heuristic
      • Deprecation reasons will now correclty be wrapped in strings
    Open source →
    Release notes

    Bug Fixes

    • Various SDL output fixes in cynic-introspection:
      • It no longer prints ? where it means !
      • It omits the schema definition if all the root operation types are using default names
      • Enum values no longer have empty lines between them
      • We no longer erronously print the Boolean scalar
      • Fields now have a hacky heuristic that decides when to wrap them
      • Unions also have a wrapping heuristic
      • Deprecation reasons will now correclty be wrapped in strings
    Open source →
  28. 3.2.1 26 Jun 2023
    Release notes

    Changes

    • Building binaries with different GitHub action
    Open source →
    Release notes

    Changes

    • Building binaries with different GitHub action
    Open source →
  29. 3.2.0 25 Jun 2023
    Release notes

    New Features

    • Added support for introspecting the specifiedByUrl field of scalars on
      servers supporting GraphQL 2021
    • cynic-introspection can now output SDL
    • Added CapabilitiesQuery to cynic-introspection, which can detect
      which version of the GraphQL specification a server supports.
    • QueryFragment now allows users to specify features for parts of the query,
      allowing the same query to be used on servers with differing capabilities.
    • Added cynic-cli, a CLI for cynic that can introspect remote servers.
    Open source →
    Release notes

    New Features

    • Added support for introspecting the specifiedByUrl field of scalars on servers supporting GraphQL 2021
    • cynic-introspection can now output SDL
    • Added CapabilitiesQuery to cynic-introspection, which can detect which version of the GraphQL specification a server supports.
    • QueryFragment now allows users to specify features for parts of the query, allowing the same query to be used on servers with differing capabilities.
    • Added cynic-cli, a CLI for cynic that can introspect remote servers.
    Open source →
  30. 3.1.1 22 Jun 2023
    Release notes

    Bug Fixes

    • Fixed an issue where InlineFragments fallbacks would fail to decode if the
      data contained anything other than just the __typename.
    • Inline fragment variants containing smart pointers should now decode
      correctly.
    Open source →
    Release notes

    Bug Fixes

    • Fixed an issue where InlineFragments fallbacks would fail to decode if the data contained anything other than just the __typename.
    • Inline fragment variants containing smart pointers should now decode correctly.
    Open source →
  31. 3.1.0 11 Jun 2023
    Release notes

    New Features

    • Added an exhaustive attribute for InlineFragments on union types. If
      present this attribute will cause compile errors if the enum is missing a
      variant for any union member.

    Bug Fixes

    • The generator no longer outputs a broken #[cynic::schema] module.
    • impl_scalar! and derive(Scalar) can now be used on built in scalars.
    • GitHub schema registration is now slightly faster
    • Fixed a bug where suggestions in errors were non-deterministic.
    • Fixed the names of some features in docs.rs output.
    • Added MSRV to Cargo.toml
    Open source →
    Release notes

    New Features

    • Added an exhaustive attribute for InlineFragments on union types. If present this attribute will cause compile errors if the enum is missing a variant for any union member.

    Bug Fixes

    • The generator no longer outputs a broken #[cynic::schema] module.
    • impl_scalar! and derive(Scalar) can now be used on built in scalars.
    • GitHub schema registration is now slightly faster
    • Fixed a bug where suggestions in errors were non-deterministic.
    • Fixed the names of some features in docs.rs output.
    • Added MSRV to Cargo.toml
    Open source →
  32. 3.0.2 07 Jun 2023
    Release notes

    Bug Fixes

    • Fix Variable definition for Vec<T> in #[cynic::schema] output.
    Open source →
    Release notes

    Bug Fixes

    • Fix Variable definition for Vec<T> in #[cynic::schema] output.
    Open source →
  33. 3.0.1 06 Jun 2023
    Release notes

    Bug Fixes

    • Fixed some more corner cases in string literal escaping
    • Schema registration no longer parses schemas twice when rkyv is enabled.
    • Fixed input type validation to better support skipping Option wrapping
    Open source →
    Release notes

    Bug Fixes

    • Fixed some more corner cases in string literal escaping
    • Schema registration no longer parses schemas twice when rkyv is enabled.
    • Fixed input type validation to better support skipping Option wrapping
    Open source →
  34. 3.0.0 04 Jun 2023
    Release notes

    See the upgrade guide in the book for help upgrading.

    New Features

    Breaking Changes

    • QueryBuilder, MutationBuidler & SubscriptionBuilder no longer have lifetimes.
    • QueryFragment no longer has a lifetime.
    • QueryVariables::Fields must now implement the QueryVariablesFields trait.
    • The workings of derive(QueryVariables) has been changed quite
      significantly, but shouldn't affect anyone who is using the macro.
    • The various cynic derives now expect the crate to be in scope under the name
      cynic. This hopefully shouldn't affect most users but may do so if you
      were doing something unusual.

    New Features

    • Added cynic-introspection for running an introspection query against a
      remote server.
    • Added cynic-introspection::Schema which converts the introspection output
      into a friendlier format for working with.
    • The derive macros now support structs that are generic on lifetimes and types.
    • The derive macros now fields that are references.
    • The derive macros now support fields that are references.
    • Added cynic_codegen::register_schema, a mechanism for pre-registering schemas
      with cynic.
    • Added a schema attribute macro to declare the schema module for
      pre-registered schemas.
    • Added the rkyv feature flag which optimises the pre-registered schemas with
      the rkyv library. This makes cynic much more efficient when working with
      large schemas.
    • The Enum derive now supports fallback variants
    • Added Operation::new to allow Operation to be used in tests.

    Changes

    • Cynic now uses operationName when one is provided by the top-level QueryFragment
    • QueryFragments now provide the name of the struct to use as operationName

    Bug Fixes

    • Fixed an issue deserializing recursive fields that hit their recurse depth.
    • Response deserialization will no longer work on random blobs of JSON that
      aren't in GraphQLResponse format.

    Deprecations

    • cynic_codegen::output_schema_module is now deprecated in favour of register_schema.

    Removed

    • Removed the deprecated FragmentArguments derive.
    • Removed the deprecated arugment_struct attribute.
    Open source →
    Release notes

    See the upgrade guide in the book for help upgrading.

    Breaking Changes

    • QueryBuilder, MutationBuidler & SubscriptionBuilder no longer have lifetimes.
    • QueryFragment no longer has a lifetime.
    • QueryVariables::Fields must now implement the QueryVariablesFields trait.
    • The workings of derive(QueryVariables) has been changed quite significantly, but shouldn't affect anyone who is using the macro.
    • The various cynic derives now expect the crate to be in scope under the name cynic. This hopefully shouldn't affect most users but may do so if you were doing something unusual.

    New Features

    • Added cynic-introspection for running an introspection query against a remote server.
    • Added cynic-introspection::Schema which converts the introspection output into a friendlier format for working with.
    • The derive macros now support structs that are generic on lifetimes and types.
    • The derive macros now fields that are references.
    • The derive macros now support fields that are references.
    • Added cynic_codegen::register_schema, a mechanism for pre-registering schemas with cynic.
    • Added a schema attribute macro to declare the schema module for pre-registered schemas.
    • Added the rkyv feature flag which optimises the pre-registered schemas with the rkyv library. This makes cynic much more efficient when working with large schemas.
    • The Enum derive now supports fallback variants
    • Added Operation::new to allow Operation to be used in tests.

    Changes

    • Cynic now uses operationName when one is provided by the top-level QueryFragment
    • QueryFragments now provide the name of the struct to use as operationName

    Bug Fixes

    • Fixed an issue deserializing recursive fields that hit their recurse depth.
    • Response deserialization will no longer work on random blobs of JSON that aren't in GraphQLResponse format.

    Deprecations

    • cynic_codegen::output_schema_module is now deprecated in favour of register_schema.

    Removed

    • Removed the deprecated FragmentArguments derive.
    • Removed the deprecated arugment_struct attribute.
    Open source →
  35. 3.0.0-beta.4 04 Jun 2023 pre-release
    Release notes

    New Features

    • The Enum derive now supports fallback variants
    • Added Operation::new to allow Operation to be used in tests.

    Removed

    • Removed the deprecated FragmentArguments derive.
    • Removed the deprecated arugment_struct attribute.
    Open source →
  36. 3.0.0-beta.3 13 May 2023 pre-release
    Release notes

    New Features

    • Added from_sdl method to schema registration.
    Open source →
  37. 3.0.0-beta.2 13 May 2023 pre-release
    Release notes

    Bug Fixes

    • Schema file should no longer cause clippy warnings if clippy::pedantic is on.
    Open source →
  38. 3.0.0-beta.1 13 May 2023 pre-release
    Release notes

    Breaking Changes

    • QueryBuilder, MutationBuidler & SubscriptionBuilder no longer have lifetimes.
    • QueryFragment no longer has a lifetime.
    • QueryVariables::Fields must now implement the QueryVariablesFields trait.
    • The workings of derive(QueryVariables) has been changed quite
      significantly, but shouldn't affect anyone who is using the macro.
    • The various cynic derives now expect the crate to be in scope under the name
      cynic. This hopefully shouldn't affect most users but may do so if you
      were doing something unusual.

    New Features

    • Added cynic-introspection for running an introspection query against a
      remote server.
    • Added cynic-introspection::Schema which converts the introspection output
      into a friendlier format for working with.
    • The derive macros now support structs that are generic on lifetimes and types.
    • The derive macros now support fields that are references.
    • Added cynic_codegen::register_schema, a mechanism for pre-registering schemas
      with cynic.
    • Added a schema attribute macro to declare the schema module for
      pre-registered schemas.
    • Added the rkyv feature flag which optimises the pre-registered schemas with
      the rkyv library. This makes cynic much more efficient when working with
      large schemas.

    Changes

    • Cynic now uses operationName when one is provided by the top-level QueryFragment
    • QueryFragments now provide the name of the struct to use as operationName

    Bug Fixes

    • Fixed an issue deserializing recursive fields that hit their recurse depth.
    • Response deserialization will no longer work on random blobs of JSON that
      aren't in GraphQLResponse format.

    Deprecations

    • cynic_codegen::output_schema_module is now deprecated in favour of register_schema.
    Open source →
  39. 2.2.8 03 Mar 2023
    Release notes

    Bug Fixes

    • GraphQlErrorLocation & GraphQlErrorPathSegment are no longer accidentally private.
    Open source →
    Release notes

    Bug Fixes

    • GraphQlErrorLocation & GraphQlErrorPathSegment are no longer accidentally private.
    Open source →
  40. 2.2.7 27 Feb 2023
    Release notes

    Bug Fixes

    • You no longer have to specify the Extensions parameter on GraphQLError if
      you don't have any extensions.
    Open source →
    Release notes

    Bug Fixes

    • You no longer have to specify the Extensions parameter on GraphQLError if you don't have any extensions.
    Open source →
  41. 2.2.6 17 Feb 2023
    Release notes

    Bug Fixes

    • A QueryFragment used inside an InlineFragment can now have a __typename
      field.
    Open source →
    Release notes

    Bug Fixes

    • A QueryFragment used inside an InlineFragment can now have a __typename field.
    Open source →
  42. 2.2.5 16 Feb 2023
    Release notes

    Bug Fixes

    • The macro generated code now compiles under -D rust-2018-idioms
    Open source →
    Release notes

    Bug Fixes

    • The macro generated code now compiles under -D rust-2018-idioms
    Open source →
  43. 2.2.4 18 Jan 2023
    Release notes

    Bug Fixes

    • Fix an issue where you'd get extremely weird compiler errors if your
      QueryFragment had fields named key or map.
    Open source →
    Release notes

    Bug Fixes

    • Fix an issue where you'd get extremely weird compiler errors if your QueryFragment had fields named key or map.
    Open source →
  44. 2.2.3 03 Jan 2023
    Release notes

    Bug Fixes

    • The generator and derive macros are now aware of the implicit __typename
      that every object & interface type gets.
    • Fixed support for support fields with one or more leading underscores in the
      derives. This would have been possible before but only by using a rename
      attribute.
    Open source →
    Release notes

    Bug Fixes

    • The generator and derive macros are now aware of the implicit __typename that every object & interface type gets.
    • Fixed support for support fields with one or more leading underscores in the derives. This would have been possible before but only by using a rename attribute.
    Open source →
  45. 2.2.2 28 Dec 2022
    Release notes

    Bug Fixes

    • Fixed a compilation error when targeting wasm with the http-reqwest feature
      enabled.
    Open source →
    Release notes

    Bug Fixes

    • Fixed a compilation error when targeting wasm with the http-reqwest feature enabled.
    Open source →
  46. 2.2.1 16 Nov 2022
    Release notes

    Bug Fixes

    • Exposed the StreamingOperation type which was accidentally not exported in
      the move to v2.0.
    Open source →
    Release notes

    Bug Fixes

    • Exposed the StreamingOperation type which was accidentally not exported in the move to v2.0.
    Open source →
  47. 2.2.0 14 Nov 2022
    Release notes

    Changes

    • The use_schema output has been re-organised to reduce the chances of
      clashes. This is technically a breaking change, but only if you're writing
      queries by hand rather than using the derives.
    Open source →
    Release notes

    Changes

    • The use_schema output has been re-organised to reduce the chances of clashes. This is technically a breaking change, but only if you're writing queries by hand rather than using the derives.
    Open source →
  48. 2.1.0 09 Nov 2022
    Release notes

    New Features

    • InlineFragments derives for union types now allow a fallback that receives
      the __typename

    Bug Fixes

    • schema_for_derives no longer ignores QueryVariables structs.
    • A slight improvement on the error spans if you refer to a missing variable
      in some QueryFragment arguments.
    Open source →
    Release notes

    New Features

    • InlineFragments derives for union types now allow a fallback that receives the __typename

    Bug Fixes

    • schema_for_derives no longer ignores QueryVariables structs.
    • A slight improvement on the error spans if you refer to a missing variable in some QueryFragment arguments.
    Open source →
  49. 2.0.1 08 Nov 2022
    Release notes

    Bug Fixes

    • Some of the derives weren't recasing GraphQL types/fields correctly, leading
      to weird errors.
    • Scalars defined using impl_scalar! couldn't be used as variables. Now they
      can.
    Open source →
    Release notes

    Bug Fixes

    • Some of the derives weren't recasing GraphQL types/fields correctly, leading to weird errors.
    • Scalars defined using impl_scalar! couldn't be used as variables. Now they can.
    Open source →
  50. 2.0.0 07 Nov 2022
    Release notes

    This release contains a lot of breaking changes.

    See the upgrade guide for help

    Breaking Changes

    • Cynic no longer supports providing variables via the arg.X syntax. Instead
      you should provide variables similar to how you would do in a GraphQL query:
      #[arguments(someArg: $my_variable)], where my_variable is a field on your
      QueryVariables struct.
    • Arguments should be provided with the casing of the GraphQL schema rather
      than snake_casing them.
    • Cynic now derives serde::Serialize and serde::Deserialize where
      appropriate so you can no longer do this yourself on structs you are using
      with cynic.
    • Decoding GraphQLResponses should now be done directly with serde using a
      decode_response function on the operation (unless you're using an http
      extension trait, which will deal with this for you).
    • Operation has changed:
      • It no longer has a lifetime.
      • It is now generic over the arguments type.
    • The http extension traits have had their signatures changed to accomodate
      the new signature of Operation. Their use should still be the same.
    • An Enum can no longer be shared between schemas. If you were doing this,
      you should define two Enums and provide conversion functions beteween the
      two of them.
    • InlineFragments now always require a fallback and no longer perform
      exhaustiveness checking.
    • QueryBuilder, MutationBuilder and SubscriptionBuilder no longer have a
      ResponseData associated type.
    • QueryBuilder::build, MutationBuilder::build and
      SubscriptionBuilder::build now take their argument by value not by
      reference.
    • The surf, reqwest & reqwest-blocking features have been renamed to
      http-surf, http-reqwest & http-reqwest-blocking respectively.
    • The http-reqwest feature no longer uses the native-tls feature. Users
      should enable one of the tls features of reqwest themselves.
    • The surf-h1-client, surf-curl-client, surf-wasm-client,
      surf-middleware-logger & surf-encoding features have been removed. If
      users want to enable these features in surf they should do it in their own
      Cargo.toml.
    • cynic no longer re-exports serde_json
    • The GraphQlError & GraphQlResponse structs no longer contain a
      serde_json::Value for extensions. They now have generic parameters that you
      should provide if you care about error extensions.
    • The output of the use_schema macro is no longer re-cased.
    • The deprecated query_module attribute for the various derive/attribute
      macros has been removed - if you're using it you should update to
      schema_module which behaves the same.

    Deprecations

    • The FragmentArguments trait & derive has been renamed to QueryVariables
    • The argument_struct attribute for QueryFragment and InlineFragments has
      been deprecated in favour of variables

    Bug Fixes

    • Fixed a case where the generator would output the incorrect casing for some
      occurrences of a custom scalar in the output (#346)
    • Cynic should now support schemas which have 2 similarly named but differently
      cased scalars.
    • Cynic should no longer fail to compile in the face of various non-breaking
      schema changes.
    • #[cynic(flatten)] no longer allows you to omit a list type on output fields.
      Previously this would compile but probably fail to deserialize.
    • Non-nullable arguments & input object fields with defaults are no longer
      considered required

    Changes

    • Cynic now supports a new syntax for arguments:
      #[arguments(someArg: {"someField": 1})]
    • cynic no longer uses inflector to re-case things. Hopefully this won't
      cause any regressions, but if it does please raise an issue.
    • InlineFragments now take their expected typenames from the QueryFragment
      inside their variants, rather than from the name of the variants themselves.
    • Queries output by cynic may have more literals in the GraphQL query string
      than they had in previous versions of cynic. Though the end result should
      be the same.
    • use_schema output can now live in a separate crate from queries, which
      should help with large schema support. (The exception is impl_scalar
      invocations which must live in the same crate as the schema)
    • Cynic now allows fields to be Arc or Rc
    • The generator no longer outputs input types that are provided in argument
      literals, as these are no longer used in the generated code.
    Open source →
    Release notes

    This release contains a lot of breaking changes.

    See the upgrade guide for help

    Breaking Changes

    • Cynic no longer supports providing variables via the arg.X syntax. Instead you should provide variables similar to how you would do in a GraphQL query: #[arguments(someArg: $my_variable)], where my_variable is a field on your QueryVariables struct.
    • Arguments should be provided with the casing of the GraphQL schema rather than snake_casing them.
    • Cynic now derives serde::Serialize and serde::Deserialize where appropriate so you can no longer do this yourself on structs you are using with cynic.
    • Decoding GraphQLResponses should now be done directly with serde using a decode_response function on the operation (unless you're using an http extension trait, which will deal with this for you).
    • Operation has changed:
      • It no longer has a lifetime.
      • It is now generic over the arguments type.
    • The http extension traits have had their signatures changed to accommodate the new signature of Operation. Their use should still be the same.
    • An Enum can no longer be shared between schemas. If you were doing this, you should define two Enums and provide conversion functions between the two of them.
    • InlineFragments now always require a fallback and no longer perform exhaustiveness checking.
    • QueryBuilder, MutationBuilder and SubscriptionBuilder no longer have a ResponseData associated type.
    • QueryBuilder::build, MutationBuilder::build and SubscriptionBuilder::build now take their argument by value not by reference.
    • The surf, reqwest & reqwest-blocking features have been renamed to http-surf, http-reqwest & http-reqwest-blocking respectively.
    • The http-reqwest feature no longer uses the native-tls feature. Users should enable one of the tls features of reqwest themselves.
    • The surf-h1-client, surf-curl-client, surf-wasm-client, surf-middleware-logger & surf-encoding features have been removed. If users want to enable these features in surf they should do it in their own Cargo.toml.
    • cynic no longer re-exports serde_json
    • The GraphQlError & GraphQlResponse structs no longer contain a serde_json::Value for extensions. They now have generic parameters that you should provide if you care about error extensions.
    • The output of the use_schema macro is no longer re-cased.
    • The deprecated query_module attribute for the various derive/attribute macros has been removed - if you're using it you should update to schema_module which behaves the same.

    Deprecations

    • The FragmentArguments trait & derive has been renamed to QueryVariables
    • The argument_struct attribute for QueryFragment and InlineFragments has been deprecated in favour of variables

    Bug Fixes

    • Fixed a case where the generator would output the incorrect casing for some occurrences of a custom scalar in the output (#346)
    • Cynic should now support schemas which have 2 similarly named but differently cased scalars.
    • Cynic should no longer fail to compile in the face of various non-breaking schema changes.
    • #[cynic(flatten)] no longer allows you to omit a list type on output fields. Previously this would compile but probably fail to deserialize.
    • Non-nullable arguments & input object fields with defaults are no longer considered required

    Changes

    • Cynic now supports a new syntax for arguments: #[arguments(someArg: {"someField": 1})]
    • cynic no longer uses inflector to re-case things. Hopefully this won't cause any regressions, but if it does please raise an issue.
    • InlineFragments now take their expected typenames from the QueryFragment inside their variants, rather than from the name of the variants themselves.
    • Queries output by cynic may have more literals in the GraphQL query string than they had in previous versions of cynic. Though the end result should be the same.
    • use_schema output can now live in a separate crate from queries, which should help with large schema support. (The exception is impl_scalar invocations which must live in the same crate as the schema)
    • Cynic now allows fields to be Arc or Rc
    • The generator no longer outputs input types that are provided in argument literals, as these are no longer used in the generated code.
    Open source →
  51. 1.0.0 09 Dec 2021
    Release notes

    Breaking Changes

    • The CynicReqwestError enum (behind the reqwest & reqwest-blocking
      feature flags) has a new variant to handle non 2XX responses from servers.
    • Removed the GraphQlResult & PossiblyParsedData types (which weren't being
      used)
    • Removed the following deprecated things: query_dsl!, the query_module
      module attribute, the GraphQLError, GraphQLResponse,
      GraphQLErrorLocation & GraphQlErrorPathSegment type aliases.

    New Features

    • The InlineFragments derive now supports a rename attribute on variants

    Changes

    • The QueryFragment derive now supports fields with types that take generic
      parameters directly, e.g. DateTime<Utc> from chrono. Previously this would
      have required a type alias to hide the generic parameters from cynic.

    Bug Fixes

    • The various HTTP client integrations will now return HTTP error details and
      the full body on non 2XX responses that don't contain a valid GraphQL
      response. Previously they would have tried to decode the response as GraphQL
      and returned the error from that operation.
    Open source →
    Release notes

    Breaking Changes

    • The CynicReqwestError enum (behind the reqwest & reqwest-blocking feature flags) has a new variant to handle non 2XX responses from servers.
    • Removed the GraphQlResult & PossiblyParsedData types (which weren't being used)
    • Removed the following deprecated things: query_dsl!, the query_module module attribute, the GraphQLError, GraphQLResponse, GraphQLErrorLocation & GraphQlErrorPathSegment type aliases.

    New Features

    • The InlineFragments derive now supports a rename attribute on variants

    Changes

    • The QueryFragment derive now supports fields with types that take generic parameters directly, e.g. DateTime<Utc> from chrono. Previously this would have required a type alias to hide the generic parameters from cynic.

    Bug Fixes

    • The various HTTP client integrations will now return HTTP error details and the full body on non 2XX responses that don't contain a valid GraphQL response. Previously they would have tried to decode the response as GraphQL and returned the error from that operation.
    Open source →
  52. 0.15.1 20 Oct 2021
    Release notes

    New Features

    New generator features, so I'm putting them out in a point release:

    • Querygen now supports inline fragments on union types & interfaces.
    • Querygen now supports subscriptions

    Bug Fixes

    • Querygen no longer duplicates variable names in generated ArgumentStructs
      when an argument is used twice in a query.
    • Fixed support for Float scalars in the generator.
    • Fixed support for fields named self, super etc. which can't be made into
      raw identifiers.
    Open source →
    Release notes

    New Features

    New generator features, so I'm putting them out in a point release:

    • Querygen now supports inline fragments on union types & interfaces.
    • Querygen now supports subscriptions

    Bug Fixes

    • Querygen no longer duplicates variable names in generated ArgumentStructs when an argument is used twice in a query.
    • Fixed support for Float scalars in the generator.
    • Fixed support for fields named self, super etc. which can't be made into raw identifiers.
    Open source →
  53. 0.15.0 23 Sep 2021
    Release notes

    Breaking Changes

    • Removed the no longer used chrono feature. It didn't enable any code so
      downstreams shouldn't really be broken by this (other than a possible
      Cargo.toml tweak)

    New Features

    • Cynic now supports GraphQL field aliases. These can be requested, but will
      also automatically be added to queries if any QueryFragment requests the same
      field twice.
    • The generator also now supports field aliases.

    Bug Fixes

    • Fixed a case where the generator would not generate InputObjects that it
      should have been generating, if those InputObjects were arguments to a leaf
      field.

    Changes

    • Disabled the heavyweight feature of inflector, which should make it (and
      therefore cynic) a lighter dependency.
    Open source →
    Release notes

    Breaking Changes

    • Removed the no longer used chrono feature. It didn't enable any code so downstreams shouldn't really be broken by this (other than a possible Cargo.toml tweak)

    New Features

    • Cynic now supports GraphQL field aliases. These can be requested, but will also automatically be added to queries if any QueryFragment requests the same field twice.
    • The generator also now supports field aliases.

    Bug Fixes

    • Fixed a case where the generator would not generate InputObjects that it should have been generating, if those InputObjects were arguments to a leaf field.

    Changes

    • Disabled the heavyweight feature of inflector, which should make it (and therefore cynic) a lighter dependency.
    Open source →
  54. 0.14.1 29 Jul 2021
    Release notes

    Bug Fixes

    • InputObject now serializes fields in a stable order.
    Open source →
    Release notes

    Bug Fixes

    • InputObject now serializes fields in a stable order.
    Open source →
  55. 0.14.0 06 Jun 2021
    Release notes

    New Features

    • You can now spread a QueryFragment into another QueryFragment with the
      #[cynic(spread)] field attribute.
    • The QueryFragment derive now supports renaming fields.

    Bug Fixes

    • Underscore field names are now supported in schemas and for querying.
    • Field names with leading underscores will no longer have those leading
      underscores removed.
    Open source →
    Release notes

    New Features

    • You can now spread a QueryFragment into another QueryFragment with the #[cynic(spread)] field attribute.
    • The QueryFragment derive now supports renaming fields.

    Bug Fixes

    • Underscore field names are now supported in schemas and for querying.
    • Field names with leading underscores will no longer have those leading underscores removed.
    Open source →
  56. 0.13.1 26 Apr 2021
    Release notes

    Bug Fixes

    • Fixes an issue where cynic would incorrectly case module certain names in the
      use_schema output
    Open source →
    Release notes

    Bug Fixes

    • Fixes an issue where cynic would incorrectly case module certain names in the use_schema output
    Open source →
  57. 0.13.0 04 Apr 2021
    Release notes

    Breaking Changes

    There are a number of breaking changes here, though they shouldn't require too
    much work for users to update. An example of an upgrade can be found
    here.

    • The cynic::Scalar derive has some new requirements:
      • You should now derive (or otherwise implement) serde::Serialize for your
        Scalar types.
      • The derive now requires a schema_module parameter. The
        schema_for_derives macro will automatically insert this (if you're using
        it) but you may need to add use super::schema; to ensure it's
        in-scope.
      • The derive now has an optional graphql_type parameter. This is required
        if the name of your type and the name of the scalar in the schema differ.
    • Scalars have been revamped:
      • The scalar trait now has a typelock. This means that a Scalar impl is now
        directly tied to the scalar definition in a given query_dsl.
      • As a result, cynic can no longer define generic Scalar impls for 3rd party
        types (such as chrono, url, uuid etc.). The impl_scalar macro has
        been provided to allow users to use these types (or any type that is
        serde::Serialize) in their queries.
      • Cynic no longer requires you to define Scalar types you are not using.
      • select functions generated for scalar fields in query_dsl now take
        a selection_set that decodes the scalar type. This gives some flexibility
        around scalar types.
      • query_dsl now defines markers for all the scalar types. As such you
        should not import any custom scalars into your query_dsl module.
    • Required scalar arguments no longer have concrete types, so anything
      that relied on type inference (i.e. arg = "hello".into()) will no longer
      work. You should either call an explicit function, or rely on a InputType
      impl to do the conversion.
    • The uuid, chrono, bson, and url features have been retired. If you
      were using these you should register them as Scalar with the impl_scalar!
      macro.
    • SerializableArgument has been retired in favour of just using
      serde::Serialize.
    • The return type of cynic::Enum::select now includes the TypeLock of the
      enum. This should only affect users that were implementing cynic::Enum
      directly. Users of the derive should be unaffected.
    • IntoArgument has been removed in favour of the new InputType trait.
    • cynic::SerializeError no longer exists.

    New Features

    • Support for building and decoding subscription queries.
    • Alpha quality support for subscriptions over websockets with
      graphql-ws-client.

    Deprecated

    • GraphQLError, GraphQLResponse, & GraphQLResult have all been deprecated
      in favour of GraphQlError, GraphQlResponse, & GraphQlResult. The types are
      otherwise the same, just with different names.
    • query_dsl! has been deprecated in favour of a similar macro named use_schema!
    • It's now recommended that you name your query_dsl module schema instead.
    • cynic_codegen::output_query_dsl is now named cynic_codegen::output_schema_module.
    • The query_module attribute macro has been deprecated in favour of
      schema_for_derives
    • The query_module parameter to the derives has been deprecated in favour of
      schema_module.

    Bug Fixes

    • Cynic will now fail to compile you when you use an incorrect enum type for a
      field in a QueryFragment.
    • Field type mismatch errors in QueryFragments are now reported on the span of
      the field type.
    • You no longer need to define Scalars you are not using
    • If a server adds a new scalar it will no longer break cynic clients.
    • Fixed a case where InputObject errors were being shown against the
      query_module attr of the module they were defined in.

    Changes

    • The graphql_type parameter for most of the derives is now optional. It
      defaults to the name of the struct/enum if not present.
    • Cynic will no longer generate invalid QueryFragments if fields are not
      selected on a composite.
    • Cynic will now error if a QueryFragment selects no fields.
    Open source →
    Release notes

    Breaking Changes

    There are a number of breaking changes here, though they shouldn't require too much work for users to update. An example of an upgrade can be found here.

    • The cynic::Scalar derive has some new requirements:
      • You should now derive (or otherwise implement) serde::Serialize for your Scalar types.
      • The derive now requires a schema_module parameter. The schema_for_derives macro will automatically insert this (if you're using it) but you may need to add use super::schema; to ensure it's in-scope.
      • The derive now has an optional graphql_type parameter. This is required if the name of your type and the name of the scalar in the schema differ.
    • Scalars have been revamped:
      • The scalar trait now has a typelock. This means that a Scalar impl is now directly tied to the scalar definition in a given query_dsl.
      • As a result, cynic can no longer define generic Scalar impls for 3rd party types (such as chrono, url, uuid etc.). The impl_scalar macro has been provided to allow users to use these types (or any type that is serde::Serialize) in their queries.
      • Cynic no longer requires you to define Scalar types you are not using.
      • select functions generated for scalar fields in query_dsl now take a selection_set that decodes the scalar type. This gives some flexibility around scalar types.
      • query_dsl now defines markers for all the scalar types. As such you should not import any custom scalars into your query_dsl module.
    • Required scalar arguments no longer have concrete types, so anything that relied on type inference (i.e. arg = "hello".into()) will no longer work. You should either call an explicit function, or rely on a InputType impl to do the conversion.
    • The uuid, chrono, bson, and url features have been retired. If you were using these you should register them as Scalar with the impl_scalar! macro.
    • SerializableArgument has been retired in favour of just using serde::Serialize.
    • The return type of cynic::Enum::select now includes the TypeLock of the enum. This should only affect users that were implementing cynic::Enum directly. Users of the derive should be unaffected.
    • IntoArgument has been removed in favour of the new InputType trait.
    • cynic::SerializeError no longer exists.

    New Features

    • Support for building and decoding subscription queries.
    • Alpha quality support for subscriptions over websockets with graphql-ws-client.

    Deprecated

    • GraphQLError, GraphQLResponse, & GraphQLResult have all been deprecated in favour of GraphQlError, GraphQlResponse, & GraphQlResult. The types are otherwise the same, just with different names.
    • query_dsl! has been deprecated in favour of a similar macro named use_schema!
    • It's now recommended that you name your query_dsl module schema instead.
    • cynic_codegen::output_query_dsl is now named cynic_codegen::output_schema_module.
    • The query_module attribute macro has been deprecated in favour of schema_for_derives
    • The query_module parameter to the derives has been deprecated in favour of schema_module.

    Bug Fixes

    • Cynic will now fail to compile you when you use an incorrect enum type for a field in a QueryFragment.
    • Field type mismatch errors in QueryFragments are now reported on the span of the field type.
    • You no longer need to define Scalars you are not using
    • If a server adds a new scalar it will no longer break cynic clients.
    • Fixed a case where InputObject errors were being shown against the query_module attr of the module they were defined in.

    Changes

    • The graphql_type parameter for most of the derives is now optional. It defaults to the name of the struct/enum if not present.
    • Cynic will no longer generate invalid QueryFragments if fields are not selected on a composite.
    • Cynic will now error if a QueryFragment selects no fields.
    Open source →
  58. 0.12.3 01 Apr 2021
    Release notes

    Bug Fixes

    • The cynic::Scalar derive output no longer contains a spurious ? that
      clippy warns about in Rust 1.51.
    Open source →
  59. 0.12.2 22 Feb 2021
    Release notes

    Bug Fixes

    • Hopefully fixed the build of documentation for docs.rs
    Open source →
    Release notes

    Bug Fixes

    • Hopefully fixed the build of documentation for docs.rs
    Open source →
  60. 0.12.1 12 Feb 2021
    Release notes

    Bug Fixes

    • chrono::NaiveTime now supports times without seconds (e.g. 10:30)
    • Failures to parse chrono types now provide error messages that mention
      chrono: these were fairly hard to diagnose before.
    Open source →
    Release notes

    Bug Fixes

    • chrono::NaiveTime now supports times without seconds (e.g. 10:30)
    • Failures to parse chrono types now provide error messages that mention chrono: these were fairly hard to diagnose before.
    • The generator no longer prints out an empty types module when there are no custom scalars.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive