v0.16.0 - Rust Migration

We're excited to announce that vss has been completely rewritten in Rust! This is a major milestone for the project.

Why Rust?

After using vss in Go for several years, we decided to migrate to Rust for the following reasons:

Performance

Rust's zero-cost abstractions and compile-time optimizations provide excellent runtime performance without sacrificing readability or safety.

Reliability

Rust's type system and borrow checker catch many classes of bugs at compile time, making the codebase more robust and maintainable.

Memory Safety

Rust prevents entire categories of bugs like null pointer exceptions, buffer overflows, and data races without garbage collection overhead.

What's Changed?

User Perspective

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.

Developer Perspective

Internally, the codebase has been completely rewritten:

Performance Improvements

The Rust implementation provides:

Backward Compatibility

This release maintains backward compatibility with:

All existing sites should continue to work without modifications.

Migration Guide

For Users

If you're using vss with Go, upgrading is straightforward:

  1. Download the new Rust-based binary
  2. Replace your old vss binary
  3. Run your existing commands - everything works the same!

No changes to configuration or content are needed.

For Contributors

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.

Future Direction

With the Rust foundation in place, we can now:

Known Limitations

While we've maintained compatibility with the Go version, there are some differences:

Thanks

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.