PackageTrack
Sign in Get early access

versions

A library for parsing and comparing software version numbers.

7.0.0 11M downloads/mo #3018 most downloaded on crates.io fosskers/rs-versions

What this package is like to depend on

Last release 1 years ago

no release in 18 months

Release timing varies

gaps range from 5 weeks to 13 months

Nearly every release is documented

notes for 21 of 21 stable releases

1 version withdrawn

withdrawn after publishing

6 years old

22 releases · first in 2020

0 releases in the last 12 months

see the full history below

Release timeline

22 releases · Jun 2020 to Feb 2025
2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 22
  1. 7.0.0 24 Feb 2025
    Release notes

    Changed

    • Support for Rust 2024 and other dependency bumps, nom in particular.
    Open source →
    Release notes

    Changed

    • Support for Rust 2024 and other dependency bumps, nom in particular.
    Open source →
  2. 6.4.0 24 Feb 2025 withdrawn

    Nothing published for this version

  3. 6.3.2 09 Aug 2024
    Release notes

    Fixed

    • An edge-case in Version/Mess comparisons. #25
    Open source →
  4. 6.3.1 04 Aug 2024
    Release notes

    Fixed

    • Parsing of Mess on a single digit will correctly yield MChunk::Digits.
    • Improved comparison of Versions whose main chunks lead with a letter, e.g. r23.
    Open source →
    Release notes

    Fixed

    • Parsing of Mess on a single digit will correctly yield MChunk::Digits.
    • Improved comparison of Versions whose main chunks lead with a letter, e.g. r23.
    Open source →
  5. 6.3.0 15 Jun 2024
    Release notes

    Changed

    • Relaxed argument to new functions to accept S: AsRef<str>.
    Open source →
    Release notes

    Changed

    • Relaxed argument to new functions to accept S: AsRef<str>.
    Open source →
  6. 6.2.0 18 Mar 2024
    Release notes

    Added

    • Requirement::serialize for pretty-encoding of version "requirements strings".
    Open source →
    Release notes

    Added

    • Requirement::serialize for pretty-encoding of version "requirements strings".
    Open source →
  7. 6.1.0 12 Jan 2024
    Release notes

    Added

    • The Requirement type for testing version constraints.
    • Versioning::parse for usage with nom.
    • Versioning::deserialize_pretty for deserializing directly from raw version strings.
    Open source →
    Release notes

    Added

    • The Requirement type for testing version constraints.
    • Versioning::parse for usage with nom.
    • Versioning::deserialize_pretty for deserializing directly from raw version strings.
    Open source →
  8. 6.0.0 06 Dec 2023
    Release notes

    While technically a breaking change, most users should not notice.

    Changed

    • The Err / Error associated types for automatic conversion of strings into proper version types have been changed from () to a proper Error enum.
    Open source →
    Release notes

    While technically a breaking change, most users should not notice.

    Changed

    • The Err / Error associated types for automatic conversion of strings into proper version types have been changed from () to a proper Error enum.
    Open source →
  9. 5.0.1 13 Aug 2023
    Release notes

    Changed

    • Bumped itertools dependency.
    Open source →
    Release notes

    Changed

    • Bumped itertools dependency.
    Open source →
  10. 5.0.0 09 May 2023
    Release notes

    This introduces a very small, technically breaking change to the API involving a single type. If you're just doing basic parsing and comparisons and not actually inspecting the types themselves, you shouldn't notice a difference.

    Changed

    • Versions with ~ in their metadata will now parse as a Mess. Example: 12.0.0-3ubuntu1~20.04.5
    Open source →
    Release notes

    This introduces a very small, technically breaking change to the API involving a single type. If you're just doing basic parsing and comparisons and not actually inspecting the types themselves, you shouldn't notice a difference.

    Changed

    • Versions with ~ in their metadata will now parse as a Mess. Example: 12.0.0-3ubuntu1~20.04.5
    Open source →
  11. 4.1.0 21 Apr 2022
    Release notes

    Added

    • FromStr and TryFrom instances for each type.
    Open source →
    Release notes

    Added

    • FromStr and TryFrom instances for each type.
    Open source →
  12. 4.0.0 08 Jan 2022
    Release notes

    Added

    • The Release type.

    Changed

    • SemVer and Version have had their prerel field changed to Release.
    • The Chunk type has changed from a struct to an enum.

    Removed

    • The Unit type.

    Fixed

    • A bug involving zeroes in SemVer prereleases.
    • A bug involving the Display instance for Version.
    Open source →
    Release notes

    Added

    • The Release type.

    Changed

    • SemVer and Version have had their prerel field changed to Release.
    • The Chunk type has changed from a struct to an enum.

    Removed

    • The Unit type.

    Fixed

    • A bug involving zeroes in SemVer prereleases.
    • A bug involving the Display instance for Version.
    Open source →
  13. 3.0.3 23 Aug 2021
    Release notes

    Changed

    • Upgraded to nom-7.0.
    Open source →
  14. 3.0.2 28 May 2021
    Release notes

    Added

    • A proper LICENSE file.

    Changed

    • The Hash instance of SemVer is now hand-written to uphold the Law that:
    k1 == k2 -> hash(k1) == hash(k2)
    
    Open source →
  15. 3.0.1 10 May 2021
    Release notes

    Changed

    • Certain parsers are now faster and use less memory.
    Open source →
  16. 3.0.0 16 Apr 2021
    Release notes

    This release brings versions in line with version 2.0.0 of the SemVer spec. The main addition to the spec is the allowance of hyphens in both the prerelease and metadata sections. As such, certain versions like 1.2.3+1-1 which previously would not parse as SemVer now do.

    To accomodate this and other small spec updates, the SemVer and Version types have received breaking changes here.

    Added

    • Serde support through the optional serde feature.
    • Versioning::nth to pick out certain fields of a generically parsed version.
    • Default is now derived on Versioning, SemVer, Version, Mess and Chunks so that it's possible to initialize as a struct's field.

    Changed

    • Breaking: SemVer::meta and Version::meta no longer parse as Chunks but as vanilla Strings.
    • Breaking: As a semantic change, Versions now expect metadata to come after any prerelease, just as with SemVer. Version is now thus fairly similar to SemVer, except that is allows letters in more permissive positions.

    Fixed

    • Two small bugs involving SemVer/Version comparisons.
    Open source →
  17. 2.1.0 22 Mar 2021
    Release notes

    Added

    • SemVer::parse, Version::parse, and Mess::parse have been made pub so that these parsers can be integrated into other general nom parsers.
    Open source →
  18. 2.0.2 23 Jan 2021
    Release notes

    Changed

    • Updated to itertools-0.10.
    Open source →
  19. 2.0.1 19 Nov 2020
    Release notes

    Changed

    • Updated to nom-6.0.
    • Utilize new type linking in docstrings, thanks to the latest stable Rust.
    Open source →
  20. 2.0.0 22 Oct 2020
    Release notes

    Changed

    • Breaking: Mess::chunk renamed to Mess::chunks to match Version.
    • Breaking: Mess now stores smarter Vec<MChunk> instead of Strings.
    • SemVer::to_version is no longer a lossy conversion, due to the new field in Version (see below).
    • Most Display instances are more efficient.

    Added

    • Breaking: The meta: Option<Chunks> field for Version.
    • The MChunk type which allows Mess to do smarter comparisons.

    Fixed

    • A number of comparison edge cases.
    Open source →
  21. 1.0.1 15 Jun 2020
    Release notes

    Changed

    • Performance and readability improvements.
    Open source →
  22. 1.0.0 03 Jun 2020
    Release notes

    This is the initial release of the library.

    Added

    • All types, parsers, and tests.
    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