Skip to content

An experimental Function Development Kit for the Rust language

License

Notifications You must be signed in to change notification settings

fnproject/fdk-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FDK: Fn Function Development Kit

Disclaimer: This FDK is experimental and is not actively maintained. It is completely functional as of July 2021, but is not supported.

fdk’s current version badge

The API provided hides the implementation details of the Fn platform contract and allows a user to focus on the code and easily implement function-as-a-service programs.

Usage

The Fn platform offers a command line tool to initialize, build and deploy function projects. Follow the fn tool quickstart to learn the basics of the Fn platform.

Boilerplate code can be generated using the following command: fn init --init-image=fnproject/rust:init

The initializer will actually use cargo and generate a cargo binary project for the function. It is then possible to specify a dependency as usual.

[dependencies]
fdk = ">=0.2.0"

Examples

This is a simple function which greets the name provided as input. This code was generated using the above mentioned boilerplate code command.

use fdk::{Function, FunctionError, RuntimeContext};
use tokio; // Tokio for handling future.

#[tokio::main]
async fn main() -> Result<(), FunctionError> {
    if let Err(e) = Function::run(|_: &mut RuntimeContext, i: String| {
        Ok(format!(
            "Hello {}!",
            if i.is_empty() {
                "world"
            } else {
                i.trim_end_matches("\n")
            }
        ))
    })
    .await
    {
        eprintln!("{}", e);
    }
    Ok(())
}