Languages

Full list of 50+ supported programming languages grouped by category — scripting, compiled, functional, and more.

Overview

Code Execution supports 50+ programming languages via the Piston runtime engine. Each language has a pre-warmed runtime for fast execution.

Specify the language and optionally the version when calling tx.code.run():

const result = await tx.code.run({
  language: 'python',  // required
  version: '3.12',     // optional, uses latest if omitted
  code: 'print("hello")',
});

Scripting Languages

LanguageVersionIdentifier
Python3.12python
JavaScript (Node.js)20javascript
TypeScript (Deno)5.xtypescript
Ruby3.3ruby
PHP8.3php
Perl5.38perl
Lua5.4lua
R4.3r
Bash5.2bash
PowerShell7.4powershell

Compiled Languages

LanguageVersionIdentifier
Go1.22go
Rust1.77rust
CGCC 13c
C++GCC 13cpp
Java21java
C#.NET 8csharp
Swift5.9swift
Kotlin1.9kotlin
D2.107d
Zig0.12zig

Functional Languages

LanguageVersionIdentifier
Haskell9.6haskell
Elixir1.16elixir
Erlang26erlang
OCaml5.1ocaml
Clojure1.11clojure
Scala3.4scala
F#.NET 8fsharp
Racket8.12racket
SchemeChez 10scheme
Common LispSBCL 2.4lisp

Systems Languages

LanguageVersionIdentifier
Assembly (NASM)2.16nasm
FortranGCC 13fortran
PascalFPC 3.2pascal
AdaGNAT 13ada
Nim2.0nim
V0.4vlang

Data and Query Languages

LanguageVersionIdentifier
SQL (SQLite)3.45sqlite
Jq1.7jq
AWKGNU 5.2awk

Specialty Languages

LanguageVersionIdentifier
Dart3.3dart
Julia1.10julia
Groovy4.0groovy
Crystal1.11crystal
Prolog (SWI)9.0prolog
COBOLGnuCOBOL 3.2cobol
Raku2024.01raku
TCL8.6tcl

Language Examples

Python

await tx.code.run({
  language: 'python',
  code: `
import json, math
data = [1, 2, 3, 4, 5]
result = {"mean": sum(data)/len(data), "std": math.sqrt(sum((x-sum(data)/len(data))**2 for x in data)/len(data))}
print(json.dumps(result))
  `,
});

Rust

await tx.code.run({
  language: 'rust',
  code: `
fn main() {
    let numbers: Vec<i32> = (1..=10).collect();
    let sum: i32 = numbers.iter().sum();
    println!("Sum of 1..10 = {}", sum);
}
  `,
});

Go

await tx.code.run({
  language: 'go',
  code: `
package main
 
import (
    "encoding/json"
    "fmt"
    "os"
)
 
func main() {
    data := map[string]interface{}{
        "status": "ok",
        "count":  42,
    }
    json.NewEncoder(os.Stdout).Encode(data)
}
  `,
});

Java

await tx.code.run({
  language: 'java',
  code: `
import java.util.stream.IntStream;
 
public class Main {
    public static void main(String[] args) {
        int sum = IntStream.rangeClosed(1, 100).sum();
        System.out.println("Sum: " + sum);
    }
}
  `,
});

Version Selection

When you omit the version parameter, the latest available version is used. To pin a specific version:

await tx.code.run({
  language: 'python',
  version: '3.12',  // pin to 3.12
  code: 'import sys; print(sys.version)',
});

List Available Runtimes

Programmatically list all available languages and versions:

const runtimes = await tx.code.runtimes();
 
for (const runtime of runtimes) {
  console.log(`${runtime.language} ${runtime.version}`);
}

Next Steps