{"id":13642819,"url":"https://github.com/faasm/faasm","last_synced_at":"2025-12-29T22:24:43.372Z","repository":{"id":37238251,"uuid":"151271938","full_name":"faasm/faasm","owner":"faasm","description":"High-performance stateful serverless runtime based on WebAssembly","archived":false,"fork":false,"pushed_at":"2025-04-13T08:58:25.000Z","size":120104,"stargazers_count":893,"open_issues_count":19,"forks_count":72,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-04-13T09:43:55.399Z","etag":null,"topics":["cpp","faas","kubernetes","mpi","openmp","serverless","wasi","wasm","webassembly"],"latest_commit_sha":null,"homepage":"https://faasm.readthedocs.io","language":"C++","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/faasm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-10-02T14:49:29.000Z","updated_at":"2025-04-11T17:20:13.000Z","dependencies_parsed_at":"2023-02-15T11:46:51.350Z","dependency_job_id":"ddaeef30-150c-41b5-a334-f2fb8102c847","html_url":"https://github.com/faasm/faasm","commit_stats":null,"previous_names":[],"tags_count":136,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faasm%2Ffaasm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faasm%2Ffaasm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faasm%2Ffaasm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faasm%2Ffaasm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faasm","download_url":"https://codeload.github.com/faasm/faasm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249965514,"owners_count":21352920,"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":["cpp","faas","kubernetes","mpi","openmp","serverless","wasi","wasm","webassembly"],"created_at":"2024-08-02T01:01:36.698Z","updated_at":"2025-12-29T22:24:43.366Z","avatar_url":"https://github.com/faasm.png","language":"C++","funding_links":[],"categories":["Misc","C++","webassembly"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/faasm/faasm/main/faasm_logo.png\"\u003e\u003c/img\u003e\n\u003c/div\u003e\n\n# Faasm [![Tests](https://github.com/faasm/faasm/workflows/Tests/badge.svg?branch=main)](https://github.com/faasm/faasm/actions)  [![License](https://img.shields.io/github/license/faasm/faasm.svg)](https://github.com/faasm/faasm/blob/main/LICENSE.md)  [![Release](https://img.shields.io/github/release/faasm/faasm.svg)](https://github.com/faasm/faasm/releases/)  [![Contributors](https://img.shields.io/github/contributors/faasm/faasm.svg)](https://github.com/faasm/faasm/graphs/contributors/) [![codecov](https://codecov.io/gh/faasm/faasm/branch/main/graph/badge.svg?token=F7HBQ84OSD)](https://codecov.io/gh/faasm/faasm)\n\nFaasm is a high-performance stateful serverless runtime.\n\nFaasm provides multi-tenant isolation, yet allows functions to share regions of\nmemory. These shared memory regions give low-latency concurrent access to data,\nand are synchronised globally to support large-scale parallelism across multiple\nhosts.\n\nFaasm combines software fault isolation from WebAssembly with standard Linux\ntooling, to provide security and resource isolation at low cost. Faasm runs\nfunctions side-by-side as threads of a single runtime process, with low\noverheads and fast boot times.\n\nFaasm defines a custom host interface that extends [WASI](https://wasi.dev/) to\ninclude function inputs and outputs, chaining functions, managing state,\naccessing the distributed filesystem, dynamic linking, pthreads, OpenMP and MPI.\n\nIn our [paper from USENIX ATC 20](\nhttps://www.usenix.org/conference/atc20/presentation/shillaker) we present\nthe initial Faasm design and evaluate it in the context of stateful serverless\nfunctions.\n\nIn our [paper from USENIX NSDI'25, GRANNY](\nhttps://www.usenix.org/conference/nsdi25/presentation/segarra), we present the\ndesign of the OpenMP and MPI runtimes, as well as new dynamic resource\nmanagement policies, all implemented in the [faabric](\nhttps://github.com/faasm/faabric) library.\n\nPlease see the [full documentation](https://faasm.readthedocs.io/en/latest/) for\nmore details on the code and architecture.\n\n## Quick start\n\nUpdate submodules and activate the virtual environment:\n\n```bash\ngit submodule update --init --recursive\nsource ./bin/workon.sh\n```\n\nStart a Faasm cluster locally using `docker compose`:\n\n```bash\nfaasmctl deploy.compose\n```\n\nTo compile, upload and invoke a C++ function using this local cluster you can\nuse the [faasm/cpp](https://github.com/faasm/cpp) container:\n\n```bash\nfaasmctl cli.cpp\n\n# Compile the demo function\ninv func demo hello\n\n# Upload the demo \"hello\" function\ninv func.upload demo hello\n\n# Invoke the function\ninv func.invoke demo hello\n```\n\nFor more information on next steps you can look at the [getting started\ndocs](https://faasm.readthedocs.io/en/latest/source/getting_started.html)\n\n## Acknowledgements\n\nThis project has received funding from the European Union's Horizon 2020\nresearch and innovation programme under grant agreements No 825184 (CloudButton),\nNo 101086248 (CloudStars), and No 101092646 (CloudSKin), the UK Engineering and\nPhysical Sciences Research Council (EPSRC) award 1973141, and a gift from Intel\nCorporation under the TFaaS project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaasm%2Ffaasm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaasm%2Ffaasm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaasm%2Ffaasm/lists"}