Skip to content

Using Other Languages

Fastly's Compute@Edge supports WebAssembly System Interface (WASI) so langauges with this support can implement Fastly's Compute host calls to support using those languages for WebAssembly guests.

The information here buildes on the Fastly Developer Guide section on Custom SDKs.

Fastly Compute@Edge ABI

The Fastly Application Binary Interface is documented in .wtix files which can be used to create language stubs to call Fastly's Compute@Edge's host calls. These are defined in the following files on Fastly's Compute@Edge ABI definition:

Example Community SDKs

The following community SDKs are available as exmaple implementations when suppoorting new languages:

WITX-WebAssembly Code Generators

When implemeting a new language, scaffolding to create new server stubs can be done manually or can be done with a code generator. For code generates, the Rust-based WITX-CodeGen by Frank Denis can be extended for more languages. It currently supports AssemblyScript, Zig and Rust, with interest to extend to C++, TinyGo and Swift.

Language Candidates

To check if a language can be supported, check to see if it supports WebAssembly and WASI. A list is maintained by Fermyon indicates the following additional languages have WASI support and are thus candicates for Fastly Compute@Edge guest language SDK support.

  1. C
  2. C++
  3. C# and .NET
  4. Go (via TinyGo WASI support)
  5. Grain
  6. Haskell
  7. Motoko
  8. Python
  9. Ruby