Skip to content

austinrivas/rust-warp-template

Repository files navigation

OpenFaaS Rust Warp Server template

An OpenFaaS of-watchdog template written for the Rust Warp server library.

Installation

$ faas template pull https://github.com/austinrivas/rust-warp-template
$ faas new --list
Languages available as templates:
- rust-warp

Create Function

faas new <name> --lang rust-warp

Testing

cargo test --manifest-path ./template/rust-warp/main/Cargo.toml
cargo test --manifest-path ./template/rust-warp/function/Cargo.toml

Format

cargo fmt --manifest-path ./template/rust-warp/main/Cargo.toml
cargo fmt --manifest-path ./template/rust-warp/function/Cargo.toml

Linting

cargo clippy --manifest-path ./template/rust-warp/main/Cargo.toml
cargo clippy --manifest-path ./template/rust-warp/function/Cargo.toml

Usage

This template provides a thin wrapper around the Rust Warp Server. The wrapper implementation closely mirrors the example server.

Example Function

A working example of this function template can be found here.

Extras

A builder Docker image that pre-compiles the included dependencies of the rust-warp template.

Pre-compiling dependencies in this manner speeds up function builds by a significant amount.

A runner Docker alpine image that is optimized to run OpenFaaS binaries with minimal dependencies.

Based on rust-warp-builder this image is designed to run rust-warp OpenFaaS functions on the Okteto remote development platform. It includes pre-compiled base dependencies and additional configuration to optimize it for okteto. For additional information on how to configure a function for okteto see openfaas_rust-warp_func.

CI / CD

This repo includes two github actions to test / lint / format code in the main wrapper and function.