Polyglot Serverless

Write functions in your preferred language. Apache OpenWhisk supports 11+ official runtimes plus any custom Docker-based environment.

Official Runtimes

js
JavaScript / Node.js 14 / 16 / 18

Most popular. npm packages supported via ZIP bundles.

python
Python 3.x

pip packages via virtualenv ZIP. Great for ML/AI workloads.

java
Java OpenJDK 11

JAR-based deployment. Full Java ecosystem.

go
Go 1.17+

Single binary deployment. Excellent performance.

php
PHP 8.x

composer packages via ZIP bundles.

ruby
Ruby 2.7

gem packages supported.

swift
Swift 5.x

Ideal for Apple ecosystem integration.

net
.NET (C# / F#) 6.x

Full .NET SDK access.

scala
Scala 2.12

JVM-based, interoperable with Java.

rust
Rust stable

Via Docker action. Memory-safe systems programming.

Custom / Experimental

docker
Docker (any language) any

Bring your own runtime image. Haskell, Deno, Ballerina, etc.

c
ANSI C via Docker

See the Quick Start → ANSI C example for a working template.

Same Function, Multiple Languages

hello.js
function main(p) {
  return {
    msg: "Hello, "
       + p.name
  };
}
hello.py
def main(p):
  return {
    "msg": "Hello, "
          + p.get("name")
  }
hello.go
func Main(p map[string]
    interface{}) map[string]
    interface{} {
  return map[string]
    interface{}{
    "msg": "Hello",
  }
}