NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #4132 most downloaded on crates.io
Fastly Compute API
Last release 1 months ago
25 Aug 2026
Ships fairly regularly
a new release about every 2 months
Nearly every release is documented
notes for 59 of 59 stable releases
4 versions withdrawn
withdrawn after publishing
7 years old
70 releases · first in 2019
Separated the low-level Compute bindings into a new, separately-versioned crate, in order to reduce the frequency of breaking changes for users of the…
Added Drop implementations for streaming bodies to close streaming responses when the associated StreamingBodyHandle or StreamingBody goes out of scope. This allows client requests to finish while the Compute program is still running.
Added downstream_original_header_count, which gets the original number of headers of the downstream request.
Added ResponseHandle::remove_header and RequestHandle::remove_header, which can remove headers directly from handles.
fastly crate.Fixed a bug in the APIs which return iterators of values, such as RequestHandle::get_header_values(), that was causing the iterator to skip values whe
RequestHandle::get_header_values(), that was causing the iterator to skip values when the buffer sizes were too small.One column per quarter.
downstream_client_ip_addr() gets the IP address of the downstream client, when it is known.
downstream_client_ip_addr() gets the IP address of the downstream client, when it is known.
Geolocation information for IP addresses is now available in the fastly::geo module.
#[fastly::main] attribute now can be applied to a function of any name, not just one called main.Added the #[fastly::main] attribute to optionally reduce boilerplate in program entrypoints:
Added the #[fastly::main] attribute to optionally reduce boilerplate in program entrypoints:
#[fastly::main]
fn main(ds_req: Request<Body>) -> Result<impl ResponseExt, Error> {
ds_req.send("example_backend")
}
Added downstream_tls_client_hello() to get the raw bytes of the TLS ClientHello message.
Added downstream_original_header_names_with_len() to get the request's header names as originally received, and in the original order they were received.
Added fastly::log::set_panic_endpoint(), which lets you redirect Rust panic output to the logging endpoint of your choice.
Backend::send() method to take any argument that implements the fastly::RequestExt trait.regex crate.Added APIs to override caching behavior of backend responses. This replaces the previous ttl: i32 argument to send() and send_async(), and adds the ab
Added APIs to override caching behavior of backend responses. This replaces the previous ttl: i32 argument to send() and send_async(), and adds the ability to override stale-while-revalidate. See the request::CacheOverride type, as well as the new methods on RequestExt and the entirely new RequestBuilderExt.
Added hostcall error code definitions to XqdStatus, and updated hostcall implementations to return these error codes.
Added the fastly::log module, which contains a basic interface for writing to Fastly log endpoints.
Added request::downstream_tls_cipher_openssl_name() and request::downstream_tls_protocol() to get basic TLS metadata for the downstream client request
Added request::downstream_tls_cipher_openssl_name() and request::downstream_tls_protocol() to get basic TLS metadata for the downstream client request. These functions both return strings for the moment, but we will be evolving to more structured metadata in future releases.
Added some checks to make sure backend requests are sent with complete URIs and valid backend names, returning with an error before trying to send if validation fails. Previously, this would fail outside of the WebAssembly program, making debugging more obscure.
Added a FromStr implementation for Backend, allowing them to be parsed directly from a string. For example:
let backend = "exampleOrigin".parse::<Backend>().unwrap();
RequestExt and ResponseExt implementations for AsRef<[u8]> to implementations on specific concrete types. This includes a new implementation for () to represent an empty body, as well as all of the "stringy" types from the standard library like String, &str, Vec<u8>, and &[u8].Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →