{"id":28003152,"url":"https://github.com/fnproject/fdk-rust","last_synced_at":"2025-05-09T01:59:11.967Z","repository":{"id":48291964,"uuid":"107472568","full_name":"fnproject/fdk-rust","owner":"fnproject","description":"An experimental Function Development Kit for the Rust language","archived":false,"fork":false,"pushed_at":"2021-08-13T05:31:32.000Z","size":43,"stargazers_count":12,"open_issues_count":2,"forks_count":7,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-04-02T15:39:24.770Z","etag":null,"topics":["crate","fdk","fn-fdk","fnproject","functions","rust","serverless"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fnproject.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-18T23:03:52.000Z","updated_at":"2025-03-30T17:54:11.000Z","dependencies_parsed_at":"2022-09-26T20:11:56.951Z","dependency_job_id":null,"html_url":"https://github.com/fnproject/fdk-rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnproject%2Ffdk-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnproject%2Ffdk-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnproject%2Ffdk-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fnproject%2Ffdk-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fnproject","download_url":"https://codeload.github.com/fnproject/fdk-rust/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252569640,"owners_count":21769516,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crate","fdk","fn-fdk","fnproject","functions","rust","serverless"],"created_at":"2025-05-09T01:59:11.316Z","updated_at":"2025-05-09T01:59:11.941Z","avatar_url":"https://github.com/fnproject.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FDK: Fn Function Development Kit\n\n###### Disclaimer: This FDK is experimental and is not actively maintained. It is completely functional as of July 2021, but is not supported.\n\n\u003ca href=\"https://crates.io/crates/fdk\"\u003e\u003cimg src=\"https://img.shields.io/crates/v/fdk.svg\" alt=\"fdk’s current version badge\" title=\"fdk’s current version badge\" /\u003e\u003c/a\u003e\n\nThe API provided hides the implementation details of the Fn platform\ncontract and allows a user to focus on the code and easily implement\nfunction-as-a-service programs.\n\n# Usage\n\nThe Fn platform offers a\n[command line tool](https://github.com/fnproject/fn/blob/master/README.md#quickstart)\nto initialize, build and deploy function projects. Follow the `fn` tool\nquickstart to learn the basics of the Fn platform.\n\nBoilerplate code can be generated using the following command:\n`fn init --init-image=fnproject/rust:init`\n\nThe initializer will actually use cargo and generate a cargo binary project\nfor the function. It is then possible to specify a dependency as usual.\n\n```toml\n[dependencies]\nfdk = \"\u003e=0.2.0\"\n```\n\n# Examples\n\nThis is a simple function which greets the name provided as input. This code was generated using the above mentioned boilerplate code command.\n\n```rust\nuse fdk::{Function, FunctionError, RuntimeContext};\nuse tokio; // Tokio for handling future.\n\n#[tokio::main]\nasync fn main() -\u003e Result\u003c(), FunctionError\u003e {\n    if let Err(e) = Function::run(|_: \u0026mut RuntimeContext, i: String| {\n        Ok(format!(\n            \"Hello {}!\",\n            if i.is_empty() {\n                \"world\"\n            } else {\n                i.trim_end_matches(\"\\n\")\n            }\n        ))\n    })\n    .await\n    {\n        eprintln!(\"{}\", e);\n    }\n    Ok(())\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnproject%2Ffdk-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffnproject%2Ffdk-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffnproject%2Ffdk-rust/lists"}