PackageTrack
Sign in Get early access

target-spec

Evaluate Cargo.toml target specifications

3.6.0 15M downloads/mo #2434 most downloaded on crates.io guppy-rs/guppy

What this package is like to depend on

Last release 4 months ago

01 Apr 2026

Release timing varies

gaps range from 2 weeks to 5 months

Nearly every release is documented

notes for 45 of 46 stable releases

1 version withdrawn

withdrawn after publishing

6 years old

47 releases · first in 2020

8 releases in the last 12 months

see the full history below

Release timeline

47 releases · Mar 2020 to Apr 2026
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 47
  1. 3.6.0 01 Apr 2026
    Release notes

    Added

    • Support for parsing rustc --print=cfg output, under a new custom-cfg feature. (The existing custom feature now implicitly includes custom-cfg.)

    Changed

    • CustomTripleCreateError::Unavailable is now deprecated, and replaced with CustomJsonUnavailable/CustomCfgUnavailable.

    Other improvements

    • The crates.io config for target-spec now enforces GitHub Trusted Publishing.
    Open source →
    Release notes

    Added

    • Support for parsing rustc --print=cfg output, under a new custom-cfg feature. (The existing custom feature now implicitly includes custom-cfg.)

    Changed

    • CustomTripleCreateError::Unavailable is now deprecated, and replaced with CustomJsonUnavailable/CustomCfgUnavailable.

    Other improvements

    • The crates.io config for target-spec now enforces GitHub Trusted Publishing.
    Open source →
  2. 3.5.7 31 Jan 2026
    Release notes

    Changed

    • Updated cfg-expr to version 0.20.6, updating builtin targets to Rust 1.93.
    Open source →
    Release notes

    Changed

    • Updated cfg-expr to version 0.20.6, updating builtin targets to Rust 1.93.
    Open source →
  3. 3.5.6 12 Jan 2026
    Release notes

    Fixed

    • In custom targets, support arbitrary strings such as "immediate-abort" for panic-strategy.
    Open source →
    Release notes

    Fixed

    • In custom targets, support arbitrary strings such as "immediate-abort" for panic-strategy.
    Open source →
  4. 3.5.5 27 Dec 2025
    Release notes

    Changed

    • Updated cfg-expr to version 0.20.5, updating builtin targets to Rust 1.92.
    Open source →
    Release notes

    Changed

    • Updated cfg-expr to version 0.20.5, updating builtin targets to Rust 1.92.
    Open source →
  5. 3.5.4 13 Oct 2025
    Release notes

    Fixed

    Open source →
  6. 3.5.3 12 Oct 2025
    Release notes

    Changed

    • Updated cfg-expr to version 0.20.3, updating builtin targets to Rust 1.90.
    Open source →
  7. 3.5.2 29 Sep 2025
    Release notes

    Fixed

    Replaced obsolete doc_auto_cfg with doc_cfg, to fix Rust nightly builds with the doc_cfg flag enabled.

    Open source →
  8. 3.5.1 15 Sep 2025
    Release notes

    Changed

    • Updated cfg-expr to version 0.20.2, updating builtin targets to Rust 1.89.
    Open source →
  9. 3.5.0 11 Jul 2025
    Release notes

    Changed

    • Internal dependency cfg-expr updated to 0.20.2, updating builtin targets to Rust 1.88.
    • MSRV updated to Rust 1.86, as required by dependencies. (Apologies for not fulfilling the 6 month support promise for this version series.)
    Open source →
  10. 3.4.2 21 Feb 2025
    Release notes

    Changed

    Internal dependency cfg-expr updated to 0.18.0, updating builtin targets to Rust 1.85.

    Open source →
  11. 3.4.1 15 Feb 2025
    Release notes

    Fixed

    • Removed unused direct dependency on unicode-ident. Thanks hanna-kruppe for your contribution!
    Open source →
  12. 3.4.0 09 Feb 2025
    Release notes

    Added

    • Added Triple::from_rustc_version_verbose and Platform::from_rustc_version_verbose to parse rustc -vV output and obtain a triple.

    Changed

    • Renamed Platform::current to Platform::build_target to indicate that it is determined at build time, not at runtime. The old method is still available but has been marked deprecated.
    Open source →
  13. 3.3.1 24 Dec 2024
    Release notes

    Changed

    • Improved error message for CustomTripleCreateError::Unavailable.
    Open source →
  14. 3.3.0 23 Dec 2024
    Release notes

    Added

    • CustomTripleCreateError now has input, input_string, line_and_column, and label methods. These methods aid in implementing target-spec-miette, and also allow dependencies to be oblivious to whether the custom feature is enabled.

    Fixed

    • Custom platforms now deserialize the target-family and target-endian fields correctly. Previously, these fields were ignored and always treated as empty.

    Deprecated

    • Error::CustomTripleCreate is now deprecated. This error was never actually created, and will be removed in the future.
    • CustomTripleCreateError::Deserialize is now deprecated. target-spec now creates a different DeserializeJson variant when deserialization fails. This variant also contains the original input being deserialized.

    Changed

    • MSRV updated to Rust 1.82.
    • Internal dependency cfg-expr updated to 0.17.2, updating builtin targets to Rust 1.83.
    Open source →
  15. 3.2.2 11 Sep 2024
    Release notes

    Changed

    • Internal dependency cfg-expr updated to 0.17.0, updating builtin targets to Rust 1.81.
    Open source →
  16. 3.2.1 31 Jul 2024
    Release notes

    Fixed

    • Update minimum version of target-lexicon dependency to 0.12.16, to ensure that minimal-version builds work.
    Open source →
  17. 3.2.0 29 Jul 2024
    Release notes

    Changed

    • MSRV updated to Rust 1.75.
    • Internal dependency cfg-expr updated to 0.16.0, updating builtin targets to Rust 1.80.
    Open source →
  18. 3.1.0 04 Feb 2024
    Release notes

    Changed

    • MSRV updated to Rust 1.73.
    • Internal dependency cfg-expr updated to 0.15.6, updating builtin targets to Rust 1.75.
    Open source →
  19. 3.0.1 29 Jul 2023
    Release notes

    Changed

    • Internal dependency cfg-expr updated to 0.15.4, updating builtin targets to Rust 1.71.
    Open source →
  20. 3.0.0 26 Jun 2023
    Release notes

    Changed

    • TargetSpec now stores plain strings rather than parsed triples. This matches what Cargo does.
    • TargetExpression has been renamed renamed to TargetSpecExpression.
    • Error::UnknownTargetTriple has been renamed to Error::InvalidTargetSpecString, and returns a new PlainStringParseError type.

    Added

    • TargetSpec, TargetSpecExpression and TargetSpecPlainString now implement std::fmt::Display.
    Open source →
  21. 2.0.1 19 Jun 2023
    Release notes

    Fixed

    • Triple's Eq, PartialEq, Ord, PartialOrd and Hash now take into account custom platforms.
    Open source →
  22. 2.0.0 19 Jun 2023
    Release notes

    Added

    Custom platforms

    Added support for custom triples and platforms via JSON specifications:

    • Added support for custom triples and platforms, under the optional custom feature.
    • New methods on Platform and Triple:
      • is_standard: returns true if this is a standard platform (builtin or heuristic).
      • is_custom: returns true if this is a custom platform.
      • is_builtin: returns true if this is a builtin platform.
      • is_heuristic: returns true if this platform was determined heuristically.

    Other additions

    • Added new_strict methods to Platform and Triple, to disable heuristic target parsing.

    Fixed

    • target_os = "none" is now correctly handled.

    Changed

    • Internal dependency cfg-expr updated to 0.15.3, updating builtin targets to Rust 1.70.
    • PlatformSummary is now non-exhaustive.
    • PlatformSummary::new now creates a new PlatformSummary from a triple string. (The old PlatformSummary::new has been renamed to PlatformSummary::from_platform).

    Removed

    • Removed deprecated Error::UnknownPredicate variant.
    • Error no longer implements Eq or PartialEq due to one of its variants now containing serde_json::Error.
    Open source →
  23. 1.4.0 15 Apr 2023
    Release notes

    Changed

    • Internal dependency cfg-expr updated to 0.15.0, updating builtin targets to Rust 1.68.
    • MSRV updated to Rust 1.66.
    Open source →
  24. 1.3.1 08 Jan 2023
    Release notes

    Added

    Added note to readme about MSRV for target-spec 1.3.x.

    Open source →
  25. 1.3.0 08 Jan 2023
    Release notes

    Changed

    • Internal dependency cfg-expr updated to 0.13.0, updating builtin targets to Rust 1.66.
    • MSRV updated to Rust 1.62.
    Open source →
  26. 1.2.2 07 Nov 2022
    Release notes

    Updated

    Internal dependency cfg-expr updated to 0.12.0, enabling parsing of target_abi.

    Open source →
  27. 1.2.1 25 Oct 2022
    Release notes

    Added

    • ExpressionParseError now carries information about the reason a target expression couldn't be parsed. This has been done to support pretty-printing via the new target-spec-miette crate.
    Open source →
  28. 1.2.0 30 Sep 2022
    Release notes

    Changed

    • Repository location update.
    • Internal dependency updates.
    • MSRV updated to Rust 1.58.

    Thanks to Carol Nichols for her contributions to this release!

    Open source →
  29. 1.1.0 31 Aug 2022
    Release notes

    Fixed

    • Unknown predicates now evaluate to false, matching Cargo's behavior.
      • As a result, Error::UnknownPredicate is no longer in use and has been deprecated.
    Open source →
  30. 1.0.2 29 May 2022
    Release notes

    Changed

    • Internal dependency updates.
    • MSRV updated to Rust 1.56.
    Open source →
  31. 1.0.1 07 Feb 2022
    Release notes

    Added

    Open source →
  32. 1.0.0 07 Feb 2022
    Release notes

    No breaking changes in this release compared to version 0.9.

    Changed

    • Internal dependency version bump: cfg-expr updated to 0.10.0.

    [0.9.0] - 2021-10-01

    Open source →
  33. 0.9.0 01 Oct 2021

    Nothing published for this version

  34. 0.8.0 14 Sep 2021
    Release notes

    Added

    • Triple represents a target triple, uniquely identified by a triple string.
    • TargetExpression represents a target expression beginning with cfg(.

    Changed

    • target-spec now uses target-lexicon to parse triples, while continuing to use cfg-expr for expressions and evaluation.
      • Updated supported builtin targets to Rust 1.55.
      • target-spec is now more forward compatible, since new targets in future versions of Rust can be supported with non-breaking updates to target-lexicon.
    • TargetSpec is now an enum with Triple and TargetExpression variants.
    • Platform no longer has a lifetime parameter.
    • Updated supported builtin targets to Rust 1.55.
    • cfg-expr is now a private dependency again (target-lexicon is also a private dependency).
    • MSRV updated to Rust 1.51.
    Open source →
  35. 0.7.0 24 Feb 2021
    Release notes

    Changed

    • Public dependency version bumps:
      • cfg-expr updated to 0.7.1.
      • proptest updated to version 1 and the corresponding feature renamed to proptest1.
    Open source →
  36. 0.6.1 14 Feb 2021
    Release notes

    Changed

    • cfg-expr version requirement relaxed: 0.6 through 0.7 are now supported. There are no API changes between the two versions.
    Open source →
  37. 0.6.0 04 Feb 2021
    Release notes

    Added

    • Platform now implements Hash + Eq + Ord.

    Changed

    • TargetFeatures and Platform::add_flags now accept Cow<'static, str>, simplifying lifetime management in many cases.
    • cfg-expr updated to 0.6.0.
    Open source →
  38. 0.5.0 02 Dec 2020
    Release notes

    Changed

    • Updated cfg-expr dependency to 0.5.0.
    Open source →
  39. 0.4.1 29 Aug 2020
    Release notes

    Fixed

    • Fixed compilation on platforms without target features (#175).
    Open source →
  40. 0.4.0 20 Jun 2020
    Release notes

    Added

    • New, optional feature summaries to provide serialization and deserialization for Platform and TargetFeatures.
    • Platform::is_custom returns true if the platform was created with the custom constructor.

    Changed

    • The error types have been unified into a single Error type.
    • Platform::new and Platform::current now return errors instead of None.
    Open source →
  41. 0.3.0 13 Jun 2020
    Release notes

    Added

    • Platform::custom creates platforms that are unknown to rustc.
      • This is supported through cfg-expr, which is now a public dependency.
      • Custom platforms are often found in embedded Rust.

    Changed

    • In order to support custom platforms, Platform::triple now returns a &'a str instead of a &'static str.
    Open source →
  42. 0.2.4 07 May 2020
    Release notes

    Added

    • New feature proptest010 to generate random platforms for property testing.
    Open source →
  43. 0.2.3 15 Apr 2020
    Release notes

    Fixed

    • Better handling of unknown flags.
      • Unknown flags now evaluate to false instead of erroring out.
      • Added Platform::add_flags to allow setting flags that evaluate to true.

    These changes were prompted by how cargo-web sets the cargo_web flag to true for cargo web build.

    Open source →
  44. 0.2.2 15 Apr 2020 withdrawn
    Release notes

    This was mistakenly published and was yanked.

    Open source →
  45. 0.2.1 07 Apr 2020
    Release notes

    Changed

    • Updated repository links.
    Open source →
  46. 0.2.0 05 Apr 2020
    Release notes

    Added

    • Added support for parsing specs and platforms separately from evaluating them, making error-less evaluation possible.
    • Added support for target features, including situations when target features are unknown.

    Changed

    • Switched to cfg-expr as the backend for cfg() expressions.
    Open source →
  47. 0.1.0 21 Mar 2020
    Release notes
    • Initial release.

    <!-- next-url --> [3.6.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.6.0 [3.5.7]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.7 [3.5.6]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.6 [3.5.5]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.5 [3.5.4]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.4 [3.5.3]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.3 [3.5.2]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.2 [3.5.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.1 [3.5.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.5.0 [3.4.2]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.4.2 [3.4.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.4.1 [3.4.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.4.0 [3.3.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.3.1 [3.3.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.3.0 [3.2.2]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.2.2 [3.2.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.2.1 [3.2.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.2.0 [3.1.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.1.0 [3.0.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.0.1 [3.0.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-3.0.0 [2.0.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-2.0.1 [2.0.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-2.0.0 [1.4.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.4.0 [1.3.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.3.1 [1.3.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.3.0 [1.2.2]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.2.2 [1.2.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.2.1 [1.2.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.2.0 [1.1.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.1.0 [1.0.2]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.0.2 [1.0.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.0.1 [1.0.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-1.0.0 [0.9.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.9.0 [0.8.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.8.0 [0.7.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.7.0 [0.6.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.6.1 [0.6.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.6.0 [0.5.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.5.0 [0.4.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.4.1 [0.4.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.4.0 [0.3.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.3.0 [0.2.4]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.2.4 [0.2.3]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.2.3 [0.2.1]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.2.1 [0.2.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-0.2.0 [0.1.0]: https://github.com/guppy-rs/guppy/releases/tag/target-spec-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