---
title: Rust SDK 0.3.0
summary: null
url: https://www.fastly.com/documentation/reference/changes/2020/04/rust-sdk-0.3.0
---

## Added

- Added the `#[fastly::main]` attribute to optionally reduce boilerplate in program entrypoints:

```rust
#[fastly::main]
fn main(ds_req: Request) -> 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.

## Changed

- Generalized the `Backend::send()` method to take any argument that implements the `fastly::RequestExt` trait.

## Removed

- Removed the dependency on the `regex` crate.

## Fixed

- Fixed validation for backend names, so that all valid backend names are now accepted. This was previously too conservative about what constitutes a valid backend name.
