Crates.io | semver-cli |
lib.rs | semver-cli |
version | 0.1.3 |
source | src |
created_at | 2019-08-18 18:25:42.34287 |
updated_at | 2019-08-19 01:09:57.585409 |
description | A Rust CLI application for working with the semver specification |
homepage | |
repository | https://github.com/learnmerust/semver-cli |
max_upload_size | |
id | 157910 |
size | 12,677 |
A Rust CLI application for working with the semver specification
node-semver can be noticeably slow if you're doing many parses. How much faster could it be if we just used some existing glue from rust's ecosystem?
I wrote a script that would parse my git history (to generate a CHANGELOG.md from commits + tags), eg:
bash changelog.sh 124cef4 57175e39d4e2c49a618668ac155f85b3585835b7 > CHANGELOG.md
time command execution on the above script (implemented with node-semver):
real 1m7.698s
user 0m45.112s
sys 0m14.046s
time command execution on the same script (using a debug version of this implementation):
real 0m13.831s
user 0m3.530s
sys 0m4.337s
time command execution on a --release
build:
real 0m10.202s
user 0m2.527s
sys 0m3.627s
Fast!
cargo install semver-cli
This is still very much a work in progress, see: Todo
validate:
semver-cli 2.3.2
2.3.2
invalidate:
semver-cli 100
-> no output
increment:
semver-cli 2.3.1 --increment
2.3.2
semver-cli 2.3.1 --increment=minor
2.4.0
semver-cli 2.3.1 --increment=major
3.0.0
(feature parity with https://github.com/npm/node-semver)