FaaSO: a function-as-a-service system

Hi there!

Because of personal pain I decided I would write my own self-hosted FaaS solution (think a very poor man’s AWS lambda) and after a couple days work, here’s FaaSO

It’s very early days, but the most basic functionality is in place:

  • You can define funkos (like a lambda) in crystal (other runtimes to follow)
  • FaaSO will build docker images out of them
  • FaaSO will orchestrate them, reverse-proxy them, deploy them, etc so they are reachable in a server (or locally)

The guiding principle is that you should never be locked in.

  • You can export a funko as a complete zero-magic containerized app
  • You can create a funko image or start a funko container without ever using any of the FaaSO tooling, it’s all based on conventions and naming.
  • You can manage everything using Docker and not use the FaaSO proxy, or do everything through the proxy
  • Remote and local development are as similar as possible (usually it’s just using --local or not)

While nowhere near done, I am quite happy with how this is looking, so any comments are much appreciated.

6 Likes

A comment about what’s really important:
Function as a Service, Obviously

And now that you replied I can finally say “they’re talking about faaso” :-D

1 Like

As a serious update, it’s grown in scope quite a bit. It has load balancing, automatic SSL, a web admin interface, and a bunch of other things.

3 Likes

Great to see that it’s working great with Kemal :slight_smile:

I really like it!

Maybe add something in the docs about how to do streaming responses by using env.response.print and env.response.flush? I spent a day googling how to do that :-D

1 Like