We're excited to announce that vss has been completely rewritten in Rust! This is a major milestone for the project.
After using vss in Go for several years, we decided to migrate to Rust for the following reasons:
Rust's zero-cost abstractions and compile-time optimizations provide excellent runtime performance without sacrificing readability or safety.
Rust's type system and borrow checker catch many classes of bugs at compile time, making the codebase more robust and maintainable.
Rust prevents entire categories of bugs like null pointer exceptions, buffer overflows, and data races without garbage collection overhead.
From a user's perspective, vss works exactly the same way:
You can upgrade from Go-based vss to Rust-based vss without any changes to your site configuration or content.
Internally, the codebase has been completely rewritten:
The Rust implementation provides:
This release maintains backward compatibility with:
vss.toml configurationsAll existing sites should continue to work without modifications.
If you're using vss with Go, upgrading is straightforward:
vss binaryNo changes to configuration or content are needed.
If you were contributing to the Go version, we welcome your help with the Rust version! The new codebase is designed to be approachable while maintaining Rust's safety guarantees.
Check out the repository for contribution guidelines.
With the Rust foundation in place, we can now:
While we've maintained compatibility with the Go version, there are some differences:
Thank you to everyone who has used and contributed to vss over the years. This migration wouldn't have been possible without the feedback and support from the community.
For more information, see the CHANGELOG.