PackageTrack
Sign in Get early access

cfg-expr

A parser and evaluator for Rust `cfg()` expressions.

0.20.9 92M downloads/mo #848 most downloaded on crates.io EmbarkStudios/cfg-expr

What this package is like to depend on

Last release today

22 Aug 2026

Ships on a steady schedule

a new release about every 6 weeks

Nearly every release is documented

notes for 51 of 51 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

51 releases · first in 2020

7 releases in the last 12 months

see the full history below

Release timeline

51 releases · Jan 2020 to Aug 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 51
  1. 0.20.9 22 Aug 2026
    Release notes

    Changed

    • PR#90 updated the builtin target list to 1.98.0.
    Open source →
    Release notes

    Changed

    • PR#90 updated the builtin target list to 1.98.0.
    Open source →
  2. 0.20.8 29 May 2026
    Release notes

    Changed

    • PR#89 updated the builtin target list to 1.96.0, 1.95.0 was skipped as it had zero changes to the target list.
    Open source →
    Release notes

    Changed

    • PR#89 updated the builtin target list to 1.96.0, 1.95.0 was skipped as it had zero changes to the target list.
    Open source →
  3. 0.20.7 06 Mar 2026
    Release notes

    Changed

    • PR#87 updated the builtin target list to 1.94.0.
    Open source →
    Release notes

    Changed

    • PR#87 updated the builtin target list to 1.94.0.
    Open source →
  4. 0.20.6 22 Jan 2026
    Release notes

    Changed

    • PR#86 updated the builtin target list to 1.93.0.
    Open source →
    Release notes

    Changed

    • PR#86 updated the builtin target list to 1.93.0.
    Open source →
  5. 0.20.5 12 Dec 2025
    Release notes

    Changed

    • PR#85 updated the builtin target list to 1.92.0.
    Open source →
    Release notes

    Changed

    • PR#85 updated the builtin target list to 1.92.0.
    Open source →
  6. 0.20.4 31 Oct 2025
    Release notes

    Changed

    • PR#83 updated the builtin target list to 1.91.0.
    Open source →
    Release notes

    Changed

    • PR#83 updated the builtin target list to 1.91.0.
    Open source →
  7. 0.20.3 18 Sep 2025
    Release notes

    Changed

    • PR#82 updated the builtin target list to 1.90.0.
    Open source →
    Release notes

    Changed

    • PR#82 updated the builtin target list to 1.90.0.
    Open source →
  8. 0.20.2 07 Aug 2025
    Release notes

    Changed

    • PR#81 updated the builtin target list to 1.89.0.
    Open source →
    Release notes

    Changed

    • PR#81 updated the builtin target list to 1.89.0.
    Open source →
  9. 0.20.1 07 Jul 2025
    Release notes

    Changed

    • PR#80 updated the builtin target list to 1.88.0.
    Open source →
    Release notes

    Changed

    • PR#80 updated the builtin target list to 1.88.0.
    Open source →
  10. 0.20.0 16 May 2025
    Release notes

    Changed

    • PR#79 updated the builtin target list to 1.87.0.
    Open source →
    Release notes

    Changed

    • PR#79 updated the builtin target list to 1.87.0.
    Open source →
  11. 0.19.0 03 Apr 2025
    Release notes

    Changed

    • PR#78 updated the builtin target list to 1.86.0.
    • PR#78 changed the MSRV to 1.85.0 and the edition to 2024.
    Open source →
  12. 0.18.0 20 Feb 2025
    Release notes

    Changed

    • PR#77 updated the builtin target list to 1.84.1 and 1.85.0.
    Open source →
  13. 0.17.2 29 Nov 2024
    Release notes

    Changed

    • PR#76 updated the builtin target list to 1.83.0.
    Open source →
  14. 0.17.1 15 Nov 2024
    Release notes

    Changed

    • PR#75 updated the builtin target list to 1.82.0.
    Open source →
  15. 0.17.0 05 Sep 2024
    Release notes

    Changed

    • PR#74 updated the builtin target list to 1.81.0.
    Open source →
  16. 0.16.0 29 Jul 2024
    Release notes

    Changed

    Open source →
  17. 0.15.8 10 Apr 2024
    Release notes

    Changed

    • PR#69 updated the builtin target list to 1.77.2.
    Open source →
  18. 0.15.7 09 Feb 2024
    Release notes

    Changed

    • PR#67 updated the builtin target list to 1.76.0.
    Open source →
  19. 0.15.6 02 Jan 2024
    Release notes

    Changed

    • PR#66 updated the builtin target list to 1.75.0.
    Open source →
  20. 0.15.5 08 Sep 2023
    Release notes

    Changed

    • PR#64 updated the builtin target list to 1.72.0. It also changed the MSRV to 1.70.0.
    Open source →
  21. 0.15.4 28 Jul 2023
    Release notes

    Changed

    • PR#62 updated the builtin target list to 1.71.0.
    Open source →
  22. 0.15.3 19 Jun 2023
    Release notes

    Fixed

    • PR#61 fixed an issue where target_os = "none" was not matching target triplets where os = None. Thanks @sunshowers!
    Open source →
  23. 0.15.2 02 Jun 2023
    Release notes

    Changed

    • PR#59 updated the builtin target list to 1.70.0.
    Open source →
  24. 0.15.1 20 Apr 2023
    Release notes

    Changed

    • PR#59 updated the builtin target list to 1.69.0.
    Open source →
  25. 0.15.0 04 Apr 2023
    Release notes

    Changed

    • PR#58 updated the builtin target list to 1.68.2.
    Open source →
  26. 0.14.0 27 Jan 2023
    Release notes

    Changed

    • PR#57 updated the builtin target list to 1.67.0.
    Open source →
  27. 0.13.0 19 Dec 2022
    Release notes

    Changed

    Open source →
  28. 0.12.0 07 Nov 2022
    Release notes

    Changed

    Added

    • PR#54 added support for abi, which is currently nightly only, but should have no affect on stable. Thanks @carols10cents!
    Open source →
  29. 0.11.0 27 Sep 2022
    Release notes

    Changed

    Open source →
  30. 0.10.3 19 May 2022
    Release notes

    Added

    • PR#49 added support for the has_target_atomic = "<ptr | integer>" and panic = "<strategy>" predicates. Thanks @sunshowers!
    Open source →
  31. 0.10.2 25 Feb 2022
    Release notes

    Changed

    • PR#48 updated the builtin target list to 1.59.0.
    Open source →
  32. 0.10.1 07 Feb 2022
    Release notes

    Fixed

    • PR#46 fixed comparison of dynamic target families.
    Open source →
  33. 0.10.0 04 Feb 2022
    Release notes

    Changed

    • PR#44 added support for multiple target families that are available from Rust 1.58.0+. Thanks @sunshowers!
    Open source →
  34. 0.9.1 01 Feb 2022
    Release notes

    Changed

    Open source →
  35. 0.9.0 31 Aug 2021
    Release notes

    Changed

    • PR#35 changed TargetInfo, Os, Arch, Env, and Vendor to use a Cow<'static, str> to avoid the need for lifetime parameters for the common case of statically known target information, but still support arbitrary/future variants. Thanks @sunshowers!
    • PR#38 updated the built-in target list to 1.54.0, which notably includes the addition of the new wasm variant to target_family. Thanks @sunshowers!

    Fixed

    • PR#33 added clippy.toml with an msrv so clippy lints are consistent across environments. Thanks @remilauzier!
    Open source →
  36. 0.8.1 05 Aug 2021
    Release notes

    Changed

    • PR#31 reverted the usage of "or patterns" that were only added in 1.53.0. We now state the MSRV as 1.52.0. Thanks @cgwalters!
    Open source →
  37. 0.8.0 16 Jul 2021
    Release notes

    Changed

    • PR#28 updated target-lexicon to 0.12. Thanks @remilauzier!
    • PR#29 updated the built-in target list to 1.53.0.
    Open source →
  38. 0.7.4 16 Mar 2021
    Release notes

    Added

    • PR#26 added Expression::original to get the original string the expression was parsed from. Thanks @gdesmott!
    Open source →
  39. 0.7.3 16 Mar 2021
    Release notes

    Added

    Open source →
  40. 0.7.2 16 Mar 2021
    Release notes

    Added

    • PR#23 added a PartialEq implementation for Expression, primarily for cases where an Expression is stored in a type that itself requires PartialEq. This is only a simple syntactical equality check. Thanks @gdesmott!
    Open source →
  41. 0.7.1 17 Feb 2021
    Release notes

    Fixed

    • Fixed support for the uclibceabi environment added for one target in rust 1.50.0.
    Open source →
  42. 0.7.0 12 Feb 2021
    Release notes

    Changed

    • Updated the builtin target list to Rust 1.50.0. Again, somewhat of a breaking change as many targets were removed or changed.

    Fixed

    Open source →
  43. 0.6.0 04 Jan 2021
    Release notes

    Changed

    • Updated the builtin target list to Rust 1.49.0, this is somewhat of a breaking change, as rustc now considers all android targets to have the gnu environment, where previously, it was unspecified.
    Open source →
  44. 0.5.1 15 Dec 2020
    Release notes

    Changed

    • Updated the builtin target list to Rust 1.48.0
    Open source →
  45. 0.5.0 20 Oct 2020
    Release notes

    Changed

    • Updated the builtin target list to Rust 1.47.0
    Open source →
  46. 0.4.1 04 Jun 2020
    Release notes

    Fixed

    • Removed dbg! prints accidentally left in.
    Open source →
  47. 0.4.0 04 Jun 2020
    Release notes

    Added

    Changed

    • PR#9 changed the Arch, Vendor, Os, and Env types to not be longer enums, and are instead thin wrappers around strings. This allows for custom targets where one or more components of the target triple are not built-in to rustc. Resolved #8.
    • Changed ParseError to remove the lifetime and just keep an owned string of the expression that failed to parse.
    • Updated the list of built-in rustc targets to 1.43.1.
    Open source →
  48. 0.3.0 05 Apr 2020
    Release notes

    Changed

    • PR#7 changed Expression::eval to take a Logic trait, to enable evaluation of 'unknown' predicates. Thanks @sunshowers!
    Open source →
  49. 0.2.1 30 Mar 2020
    Release notes

    Fixed

    Open source →
  50. 0.2.0 05 Feb 2020
    Release notes

    Added

    • Added targets::rustc_version which can be used to retrieve the version string of the rustc used to generate the list of targets.

    Changed

    • targets::ALL now uses the built-in targets for rustc 1.41.0
    Open source →
  51. 0.1.0 09 Jan 2020
    Release notes

    Added

    • Initial add of all the things

    <!-- next-url --> [Unreleased]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.9...HEAD [0.20.9]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.8...0.20.9 [0.20.8]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.7...0.20.8 [0.20.7]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.6...0.20.7 [0.20.6]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.5...0.20.6 [0.20.5]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.4...0.20.5 [0.20.4]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.3...0.20.4 [0.20.3]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.2...0.20.3 [0.20.2]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.1...0.20.2 [0.20.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.0...0.20.1 [0.20.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.19.0...0.20.0 [0.19.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.18.0...0.19.0 [0.18.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.17.2...0.18.0 [0.17.2]: https://github.com/EmbarkStudios/cfg-expr/compare/0.17.1...0.17.2 [0.17.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.17.0...0.17.1 [0.17.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.16.0...0.17.0 [0.16.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.8...0.16.0 [0.15.8]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.7...0.15.8 [0.15.7]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.6...0.15.7 [0.15.6]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.5...0.15.6 [0.15.5]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.4...0.15.5 [0.15.4]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.3...0.15.4 [0.15.3]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.2...0.15.3 [0.15.2]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.1...0.15.2 [0.15.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.15.0...0.15.1 [0.15.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.14.0...0.15.0 [0.14.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.13.0...0.14.0 [0.13.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.12.0...0.13.0 [0.12.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.11.0...0.12.0 [0.11.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.10.3...0.11.0 [0.10.3]: https://github.com/EmbarkStudios/cfg-expr/compare/0.10.2...0.10.3 [0.10.2]: https://github.com/EmbarkStudios/cfg-expr/compare/0.10.1...0.10.2 [0.10.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.10.0...0.10.1 [0.10.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.9.1...0.10.0 [0.9.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.9.0...0.9.1 [0.9.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.8.1...0.9.0 [0.8.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.8.0...0.8.1 [0.8.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.7.4...0.8.0 [0.7.4]: https://github.com/EmbarkStudios/cfg-expr/compare/0.7.3...0.7.4 [0.7.3]: https://github.com/EmbarkStudios/cfg-expr/compare/0.7.2...0.7.3 [0.7.2]: https://github.com/EmbarkStudios/cfg-expr/compare/0.7.1...0.7.2 [0.7.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.7.0...0.7.1 [0.7.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.6.0...0.7.0 [0.6.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.5.1...0.6.0 [0.5.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.5.0...0.5.1 [0.5.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.4.1...0.5.0 [0.4.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.4.0...0.4.1 [0.4.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.3.0...0.4.0 [0.3.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.2.1...0.3.0 [0.2.1]: https://github.com/EmbarkStudios/cfg-expr/compare/0.2.0...0.2.1 [0.2.0]: https://github.com/EmbarkStudios/cfg-expr/compare/0.1.0...0.2.0 [0.1.0]: https://github.com/EmbarkStudios/cfg-expr/releases/tag/0.1.0

    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