NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #846 most downloaded on crates.io
A parser and evaluator for Rust `cfg()` expressions.
Last release 7 days ago
01 Oct 2026
Ships on a steady schedule
a new release about every 6 weeks
Nearly every release is documented
notes for 52 of 52 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
52 releases · first in 2020
One column per quarter.
PR#91 updated the builtin target list to 1.99.0.
PR#90 updated the builtin target list to 1.98.0.
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.
PR#87 updated the builtin target list to 1.94.0.
PR#86 updated the builtin target list to 1.93.0.
PR#85 updated the builtin target list to 1.92.0.
PR#83 updated the builtin target list to 1.91.0.
PR#82 updated the builtin target list to 1.90.0.
PR#81 updated the builtin target list to 1.89.0.
PR#80 updated the builtin target list to 1.88.0.
PR#79 updated the builtin target list to 1.87.0.
PR#78 updated the builtin target list to 1.86.0.
PR#77 updated the builtin target list to 1.84.1 and 1.85.0.
PR#76 updated the builtin target list to 1.83.0.
PR#75 updated the builtin target list to 1.82.0.
PR#74 updated the builtin target list to 1.81.0.
PR#70 updated the builtin target list to 1.80.0. Thanks @sunshowers!
PR#69 updated the builtin target list to 1.77.2.
PR#67 updated the builtin target list to 1.76.0.
PR#66 updated the builtin target list to 1.75.0.
PR#64 updated the builtin target list to 1.72.0. It also changed the MSRV to 1.70.0.
PR#62 updated the builtin target list to 1.71.0.
PR#61 fixed an issue where target_os = "none" was not matching target triplets where os = None. Thanks @sunshowers!
target_os = "none" was not matching target triplets where os = None. Thanks @sunshowers!PR#59 updated the builtin target list to 1.70.0.
PR#59 updated the builtin target list to 1.69.0.
PR#58 updated the builtin target list to 1.68.2.
PR#57 updated the builtin target list to 1.67.0.
PR#56 updated the builtin target list to 1.66.0. Thanks @sunshowers!
PR#53 updated the builtin target list to 1.65.0. Thanks @sunshowers!
abi, which is currently nightly only, but should have no affect on stable. Thanks @carols10cents!PR#51 updated the builtin target list to 1.64.0. Thanks @sunshowers!
PR#49 added support for the has_target_atomic = " " and panic = " " predicates. Thanks @sunshowers!
has_target_atomic = "<ptr | integer>" and panic = "<strategy>" predicates. Thanks @sunshowers!PR#48 updated the builtin target list to 1.59.0.
PR#46 fixed comparison of dynamic target families.
PR#44 added support for multiple target families that are available from Rust 1.58.0+. Thanks @sunshowers!
PR#42 updated the builtin target list to 1.58.0. Thanks @sunshowers!
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 static
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!1.54.0, which notably includes the addition of the new wasm variant to target_family. Thanks @sunshowers!msrv so clippy lints are consistent across environments. Thanks @remilauzier!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!
PR#28 updated target-lexicon to 0.12. Thanks @remilauzier!
PR#26 added Expression::original to get the original string the expression was parsed from. Thanks @gdesmott!
PR#25 added Clone for Expression. Thanks @gdesmott!
PR#23 added a PartialEq implementation for Expression, primarily for cases where an Expression is stored in a type that itself requires PartialEq. Thi
Fixed support for the uclibceabi environment added for one target in rust 1.50.0.
uclibceabi environment added for one target in rust 1.50.0.Updated the builtin target list to Rust 1.50.0. Again, somewhat of a breaking change as many targets were removed or 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 envi…
android targets to have the gnu environment, where previously, it was unspecified.Updated the builtin target list to Rust 1.48.0
Updated the builtin target list to Rust 1.47.0
Removed dbg! prints accidentally left in.
dbg! prints accidentally left in.PR#9 added the optional targets feature, which allows matching the various target_ predicates against a `target_lexicon::Triple`.
targets feature, which allows matching the various target_ predicates against a target_lexicon::Triple.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.ParseError to remove the lifetime and just keep an owned string of the expression that failed to parse.PR#7 changed Expression::eval to take a Logic trait, to enable evaluation of 'unknown' predicates. Thanks @sunshowers!
Expression::eval to take a Logic trait, to enable evaluation of 'unknown' predicates. Thanks @sunshowers!PR#6 fixed nested predicate evaluation. Thanks @sunshowers!
Added targets::rustc_version which can be used to retrieve the version string of the rustc used to generate the list of targets.
targets::rustc_version which can be used to retrieve the version string of the rustc used to generate the list of targets.targets::ALL now uses the built-in targets for rustc 1.41.0<!-- next-url --> [Unreleased]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.10...HEAD [0.20.10]: https://github.com/EmbarkStudios/cfg-expr/
<!-- next-url --> [Unreleased]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.10...HEAD [0.20.10]: https://github.com/EmbarkStudios/cfg-expr/compare/0.20.9...0.20.10 [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
Your coding agent can read these notes before it upgrades. Set up the MCP server →