Go Functions
Writing Go functions with fission
An environment is the language-specific runtime in which your function executes.
Every Fission function references exactly one environment. The environment supplies a container image with the language runtime, a small web server that loads your code, and (optionally) a builder image that compiles source and fetches dependencies. This page lists the runtimes Fission ships, explains the environment interface versions, and links to per-language guides.
The following pre-built environments are published to ghcr.io/fission/<name> and maintained in the fission/environments repository.
Each environment has a runtime image (*-env) and, where dependency building is supported, a builder image (*-builder).
| Language | Runtime image | Builder image | Guide |
|---|---|---|---|
| Node.js | ghcr.io/fission/node-env | ghcr.io/fission/node-builder | Node.js |
| Python | ghcr.io/fission/python-env | ghcr.io/fission/python-builder | Python |
| Go | ghcr.io/fission/go-env | ghcr.io/fission/go-builder | Go |
| Rust | ghcr.io/fission/rust-env | ghcr.io/fission/rust-builder | Rust |
| Java (JVM) | ghcr.io/fission/jvm-env | ghcr.io/fission/jvm-builder | Java |
| Ruby | ghcr.io/fission/ruby-env | ghcr.io/fission/ruby-builder | environments repo |
| PHP | ghcr.io/fission/php-env | ghcr.io/fission/php-builder | environments repo |
| Binary / Bash | ghcr.io/fission/binary-env | ghcr.io/fission/binary-builder | environments repo |
| Perl | ghcr.io/fission/perl-env | none | environments repo |
| .NET | ghcr.io/fission/dotnet-env | none | environments repo |
| .NET Core | ghcr.io/fission/dotnet20-env | ghcr.io/fission/dotnet20-builder | environments repo |
| TensorFlow Serving | ghcr.io/fission/tensorflow-serving-env | none | environments repo |
The environment portal lists every published image and its available tags, generated from the fission/environments repository. You can also bring your own runtime by packaging any container that speaks the Fission environment interface.
Fission supports three environment interface versions: v1, v2, and v3. The interface version controls how your code is loaded and whether builders and pool tuning are available.
If all source code and dependencies fit into a single, non-compiled file, the v1 interface is enough.
If your function needs third-party dependencies at runtime, or is written in a compiled language, choose v2 so you can load from a directory or binary with a specific entrypoint.
If you also want to tune the size of the environment’s pre-warmed pool, use v3.
Pass the --version flag to fission environment create:
fission environment create --name go \
--image ghcr.io/fission/go-env-1.26 \
--builder ghcr.io/fission/go-builder-1.26 \
--version 3
Writing Go functions with fission
Writing Java functions with fission
Writing Node.js functions with fission
Writing Python functions with fission
Writing Rust functions with fission