mirror of https://github.com/knative/func.git
48 lines
1.2 KiB
Markdown
48 lines
1.2 KiB
Markdown
# Rust Function Developer's Guide
|
||
|
||
When creating a Rust function using the `func` CLI, the project
|
||
directory looks like a typical Rust project. Both HTTP and Event
|
||
functions have the same template structure:
|
||
|
||
```
|
||
❯ func create -l rust fn
|
||
Project path: /home/jim/src/func/fn
|
||
Function name: fn
|
||
Runtime: rust
|
||
|
||
❯ tree
|
||
fn
|
||
├── Cargo.lock
|
||
├── Cargo.toml
|
||
├── func.yaml
|
||
├── README.md
|
||
└── src
|
||
├── config.rs
|
||
├── handler.rs
|
||
└── main.rs
|
||
|
||
```
|
||
|
||
This is a full-featured, self-contained Rust application that uses the
|
||
[actix](https://actix.rs/) web framework to listen for HTTP requests on port 8080.
|
||
|
||
See the generated [README.md](../../templates/rust/http/README.md) for
|
||
details on building, testing, and deploying the app.
|
||
|
||
You may have noticed the `func.yaml` file. This is a configuration
|
||
file used by `func` to deploy your project as a service in your
|
||
kubernetes cluster.
|
||
|
||
For an event-triggered function, pass the `-t events` option to
|
||
generate an app capable of responding to
|
||
[CloudEvents](https://cloudevents.io):
|
||
|
||
```
|
||
❯ func create -l rust -t events fn
|
||
```
|
||
|
||
The handlers of each app differ slightly. See its generated
|
||
[README.md](../../templates/rust/events/README.md) for more details.
|
||
|
||
Have fun!
|