It should be noted that Cargo (the Rust package manager) has slightly stricter requirements here: https://doc.rust-lang.org/cargo/reference/semver.html
> Initial development releases starting with "0.y.z" can treat changes in "y" as a major release, and "z" as a minor release. "0.0.z" releases are always major changes. This is because Cargo uses the convention that only changes in the left-most non-zero component are considered incompatible.
This makes it more useful for OSS that never seem to reach 1.0.