I've been scrolling through the most downloaded page of https://crates.io, and started working on a few libs in my free time to fill out our ecosystem. The first one I've finished is roc-semver, an implementation of semver 2.0.0 in Roc.
Many thanks to the Rust implementation here by David Tolnay. I'm gonna finish up testing and docs tomorrow and then publish a release when that's finished.
version = Parse.semver "1.2.3-alpha.beta+build--"
expect
version == Ok {
major: 1,
minor: 2,
patch: 3,
preRelease: ["alpha", "beta"],
build: ["build--"],
}
Nice! I have a repo called roc-semver that i started a year ago, i never finished it and can now i can delete it!
v0.1.0 has now been released: https://github.com/smores56/roc-semver/releases/tag/0.1.0
I re-organized the code to make function usage named assuming it will be called from the module level, a.k.a. I preferred Semver.parse
to Semver.parseSemver
or Parse.semver
.
Last updated: Jul 26 2025 at 12:14 UTC