• Stars
    star
    24,942
  • Rank 857 (Top 0.02 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

OpenFaaS - Serverless Functions Made Simple

OpenFaaS ยฎ - Serverless Functions Made Simple

Build Status go.dev reference License: MIT OpenFaaS Derek App

OpenFaaS Logo

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.

Twitter URL

Highlights

Want to dig deeper into OpenFaaS?

Overview of OpenFaaS (Serverless Functions Made Simple)

Conceptual architecture

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

eBook logo

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

OpenFaaS Community Edition UI

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

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.

More Repositories

1

faasd

A lightweight & portable faas engine
Go
2,550
star
2

faas-netes

Serverless Functions For Kubernetes
Go
2,122
star
3

workshop

Learn Serverless for Kubernetes with OpenFaaS
Python
955
star
4

faas-cli

Official CLI for OpenFaaS
Go
794
star
5

openfaas-cloud

The Multi-user OpenFaaS Platform
Go
767
star
6

templates

OpenFaaS Classic templates
Dockerfile
261
star
7

of-watchdog

Reverse proxy for STDIO and HTTP microservices
Go
244
star
8

ofc-bootstrap

Bootstrap OpenFaaS Cloud for your team
Go
181
star
9

store

Official Function and Template Store for OpenFaaS
Shell
162
star
10

faas-provider

A backend provider interface for OpenFaaS
Go
123
star
11

nats-queue-worker

Queue-worker for OpenFaaS with NATS Streaming
Go
122
star
12

golang-http-template

Golang templates for OpenFaaS using HTTP extensions
Shell
100
star
13

openfaas-linkerd-workshop

Lightweight Serverless on Kubernetes with mTLS and traffic-splitting with Linkerd2
98
star
14

python-flask-template

HTTP and Flask-based OpenFaaS templates for Python 3
Python
82
star
15

faas-swarm

OpenFaaS provider for Docker Swarm
Go
79
star
16

ingress-operator

Custom domains, paths and TLS for your OpenFaaS Functions
Go
68
star
17

docs

Official Docs for OpenFaaS
65
star
18

community-cluster

OpenFaaS Cloud Cluster for Community
60
star
19

connector-sdk

SDK for connecting events to functions
Go
56
star
20

openfaas.github.io

Primary website / landing-page for the project
HTML
53
star
21

store-functions

Common CLIs packaged in containers with a HTTP interface
Dockerfile
51
star
22

media

Press kit / Media pack for OpenFaaS
44
star
23

cron-connector

Invoke functions on a schedule.
Go
39
star
24

nats-connector

An OpenFaaS event-connector to trigger functions from NATS
Go
38
star
25

mqtt-connector

MQTT connector for OpenFaaS
Go
32
star
26

cloud-functions

OpenFaaS social functions
Python
28
star
27

classic-watchdog

Classic Watchdog for OpenFaaS
Go
25
star
28

certifier

OpenFaaS Compliance testing
Go
25
star
29

license-check

Check your code for Copyright header compliance
Go
19
star
30

ruby-http

A Ruby HTTP template for OpenFaaS
Ruby
12
star
31

faas-middleware

HTTP middleware for OpenFaaS
Go
12
star
32

templates-sdk

SDK resources for templates such as models and entrypoints
Java
10
star
33

function-builder-examples

OpenFaaS Pro function builder API examples
PHP
10
star
34

social-functions

Enabling social media for OpenFaaS
Go
9
star
35

cli.openfaas.com

The installation script for the OpenFaaS CLI served by Netlify
Shell
9
star
36

python-fan-in-example

Python code example for implementing a fan-out/fan-in pattern with OpenFaaS functions.
Python
8
star
37

config-checker

Check your OpenFaaS Configuration
Go
7
star
38

astradb-openfaas

Connect to Astra DB using Node.js and OpenFaaS
JavaScript
3
star
39

go-sdk

An SDK for use within OpenFaaS functions
Go
3
star
40

openfaas-autoscaler-tests

JavaScript
2
star
41

derek-test-repo

Testing compliance
1
star
42

.github

README for organisation
1
star
43

multi-tenant-tests

Basic multi-tenant-tests
JavaScript
1
star