OpenFaas

OpenFaas

Stars
23.9K
Forks
1.9K
Open issues
30
Closed issues
807
Last release
5 months ago
Last commit
5 months ago
Watchers
23.9K
Total releases
5
Total commits
2.14K
Open PRs
2
Closed PRs
677
Repo URL
Project Website
https://www.openfaas.com/
Platform
License
mit
Category
Usecase
Deployment
Offers premium version?
NO
Proprietary?
NO
About

OpenFaaS ® - Serverless Functions Made Simple

OpenFaaS® makes it easy for developers to deploy event-driven functions and microservices to Kubernetes without repetitive, boiler-plate coding. Package your code or an existing binary in an OCI-compatible image to get a highly scalable endpoint with auto-scaling and metrics.

Highlights

Want to dig deeper into OpenFaaS?

Overview of OpenFaaS (Serverless Functions Made Simple)

Conceptual architecture and stack, more detail available in the docs

Code samples

You can generate new functions using the faas-cli and built-in templates or use any binary for Windows or Linux in a container.

Official templates exist for many popular languages and are easily extensible with Dockerfiles.

  • Node.js (node12) example:

    "use strict"
    
    module.exports = async (event, context) => {
        return context
            .status(200)
            .headers({"Content-Type": "text/html"})
            .succeed(`
            <h1>
                👋 Hello World 🌍
            </h1>`);
    }

    handler.js

  • Python 3 example:

    import requests
    
    def handle(req):
        r =  requests.get(req, timeout = 1)
        return "{} => {:d}".format(req, r.status_code)

    handler.py

  • Golang example (golang-http)

    package function
    
    import (
        "fmt"
        "net/http"
    
        handler "github.com/openfaas/templates-sdk/go-http"
    )
    
    // Handle a function invocation
    func Handle(req handler.Request) (handler.Response, error) {
        var err error
    
        message := fmt.Sprintf("Body: %s", string(req.Body))
    
        return handler.Response{
            Body:       []byte(message),
            StatusCode: http.StatusOK,
        }, err
    }

Get started with OpenFaaS Official training resources

View our official training materials

Official eBook and video workshop

The founder of OpenFaaS wrote Serverless For Everyone Else to help developers understand the use-case for functions through practical hands-on exercises using JavaScript and Node.js. No programming experience is required to try the exercises.

The examples use the faasd project, which is an easy to use and lightweight way to start learning about OpenFaaS and functions.

Check out Serverless For Everyone Else on Gumroad

OpenFaaS and Golang

Everyday Go is a practical, hands-on guide to writing CLIs, web pages, and microservices in Go. It also features a chapter dedicated to development and testing of functions using OpenFaaS and Go.

Community blog and documentation

Community Sponsorship

OpenFaaS users can subscribe to a weekly Community Newsletter called Insiders Updates, to keep up to date with new features, bug fixes, events, tutorials and security patches. Insiders Updates are written by the project founder and distributed via GitHub Sponsors.

Quickstart

Here is a screenshot of the OpenFaaS Community Edition UI which was designed for ease of use. The inception function is being run which is available on the in the store.

Deploy OpenFaaS to Kubernetes, OpenShift, or faasd now with a deployment guide

Video presentations

Community events and blog posts

Have you written a blog about OpenFaaS? Do you have a speaking event? Send a Pull Request to the community page below.

Contributing

OpenFaaS Community Edition is written in Golang and is MIT licensed. Various types of contributions are welcomed whether that means providing feedback, testing existing and new feature or hacking on the source code.

How do I become a contributor?

Please see the guide on community & contributing

Dashboards

Example of a Grafana dashboard linked to OpenFaaS showing auto-scaling live in action: here

OpenFaaS Pro auto-scaling dashboard with Grafana

An alternative community dashboard is available here

Press / Branding / Website Sponsorship

  • Individual Sponsorships 🍻

    The source code for OpenFaaS shared in public repositories on GitHub is free to use and open source under the terms of the MIT license.

    OpenFaaS Ltd offers commercial support and enterprise add-ons for end-users and training and consulting services for Cloud and Kubernetes.

    Users and contributors are encouraged to join their peers in supporting the project through GitHub Sponsors.

  • OpenFaaS Pro for Production

    OpenFaaS Pro is built for production, the Community Edition (CE) is suitable for open-source developers.

    Upgrade to our commercial distribution with finely-tuned auto-scaling, scale to zero and event connectors for Kafka and AWS SQS.

    We also offer Enterprise Support where you get to work directly with the founders of the project.

    Contact us about OpenFaaS Pro & Enterprise Support

  • Website Sponsorship 🌎

    Companies and brands are welcome to sponsor openfaas.com, the Gold and Platinum tiers come with a homepage logo, see costs and tiers. Website sponsorships are payable by invoice.

  • Press / Branding 📸

    For information on branding, the press-kit, registered entities and sponsorship head over to the openfaas/media repo. You can also order custom SWAG or take part in the weekly Twitter contest #FaaSFriday

    Looking for statistics? This project does not use a mono-repo, but is split across several components. Use Ken Fukuyama's dashboard to gather accurate counts on contributors, stars and forks across the GitHub organisation.

    Note: any statistics you gather about the openfaas/faas repository will be invalid, the faas repo is not representative of the project's activity.

Governance

OpenFaaS ® is an independent open-source project created by Alex Ellis, which is being built and shaped by a growing community of contributors.

OpenFaaS is hosted by OpenFaaS Ltd (registration: 11076587), a company which also offers commercial services, homepage sponsorships, and support. OpenFaaS ® is a registered trademark in England and Wales.

Users

View a selection of end-user companies who have given permission to have their logo listed at openfaas.com.

If you're using OpenFaaS please let us know on this thread. In addition, you are welcome to request to have your logo listed on the homepage. Thank you for your support.

Alternative Projects

Subscribe to Open Source Businees Newsletter

Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.

We'll never share your email with anyone else.