Releases: fastly/Viceroy
v0.17.0
Enhancements to code quality, improved TLS handling, and experimental WebAssembly features to help you build more robust Compute services.
🧪 Better backend testing with health status mocking
You can now mock backend health status using the new health config parameter for backends in your fastly.toml. This allows you to simulate unhealthy backends and test how your service handles backend failures, timeouts, and degraded conditions. Simply add health = "unhealthy" (or "healthy" / "unknown") to any backend definition to control its health status during testing.
🔐 Improved TLS certificate handling
TLS certificate loading, handling and validation has been significantly improved in this release. The server now provides better error handling when working with certificates, more robust validation, and clearer feedback when certificate issues arise.
🔑 Test API key validation locally
The new fake_valid_fastly_keys config parameter lets you test the fastly_key_is_valid hostcall with fake valid keys during local development.
🧬 Experimental WebAssembly features
Thanks to @dgohman-fastly for adding this in #601
For those wanting to experiment with cutting-edge WebAssembly features, Viceroy now includes options to enable WebAssembly garbage collection (GC) and exceptions. These are experimental features that can be enabled for testing future WebAssembly capabilities. Note that these features are not yet available in production Compute.
⚠️ Breaking change: Error type rename
The error type Error::InvalidAlpnRepsonse has been renamed to Error::InvalidAlpnResponse to correct a typo. If you're using viceroy-lib directly and matching on this error variant, you'll need to update your code to use the corrected spelling.
🔧 Under the hood improvements
- Stub implementations added for resvpnproxy hostcalls to support upcoming SDK features - by @clintjedwards (#596)
- Code quality improvements with
cargo clippynow running in CI (#603) - Upgraded to Rust 1.95 for the latest language improvements (#604)
If you use the Fastly CLI, you should see this functionality available later today. If using directly, run cargo install viceroy to update to the latest version. Happy hacking!
Full Changelog: v0.16.5...v0.17.0
v0.16.5
Merge remote-tracking branch 'origin/main' into release-0.16.5
v0.16.4
Update changelog for 0.16.4.
v0.16.3
Update `release.yml` to use 1.87
v0.16.2
Merge pull request #565 from fastly/release-0.16.2 Release v0.16.2
v0.16.1
Viceroy 0.16.1 release
v0.16.0
A few tweaks to support more HTTP functionality and bring the server closer to functional parity with the Compute platform
💡 Rudimentary HTTP 103 support
The server will now catch, log, and drop 103s so that they are displayed in the output, but they will not be sent to the client due to limitations in the HTTP library we use. The end result is that developers can test 103 support when developing their Compute services, and see that the 103s were generated and transmitted out of the service, but they will be elided from the response stream sent back to the client. The client will still receive the final response.
💿 Core Cache consistency
The Compute platform, at the moment, only returns FOUND if within the USABLE period (in HTTP semantics, "fresh" or "stale-while-revalidate"). Unfortunately, SDKs rely on this property, and check FOUND or USABLE variously; sometimes (e.g. in Rust), this results in a FOUND-but-not-USABLE result being returned. This change updates the local testing server to match this behaviour, only returning FOUND if the object is USABLE.
🔧 Set HTTP framing headers manually
Developers can now use the set_framing_headers_mode SDK method to indicate that they would like to set framing headers (Content-Length and Transfer-Encoding) on requests and responses themselves, instead of the platform handling it for them. This is helpful when streaming files to a client where the size is known ahead of time. Previously, using this method would throw an error, halting execution of the request. Similar to the behaviour of Compute in production, the content of the headers will be validated and if it is invalid, the server will fall back to automatic framing headers.
If you use the Fastly CLI, you should see this functionality available later today. If using directly, run cargo install viceroy to update to the latest version. Happy hacking!
Full Changelog: v0.15.0...v0.16.0
v0.15.0
Release v0.15.0 - Update lock files - Update changelog
v0.14.4
Prepare release v0.14.4
v0.14.3
Prepare release v0.14.3