Skip to content

An OpenFaaS Hasura Action Template written in Rust

License

Notifications You must be signed in to change notification settings

gjolund/rust-hasura-action-template

Repository files navigation

OpenFaaS Rust Hasura Action template

An OpenFaaS Hasura Action Template written in Rust.

Installation

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

Create Function

faas new <name> --lang rust-hasura-action

Usage

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

Extras

Example Function

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

Testing

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

Format

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

Linting

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

A builder Docker image that pre-compiles the included dependencies of the rust-hasura-action 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-actix-builder this image is designed to run rust-hasura-action 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-hasura-action_func.

CI / CD

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