Gå til innholdet

Kodehandlinger

Når grafen ikke er nok, kjører Kode-boksen et skript.

Sju språk er tilgjengelige, og alle kjører i en innebygd WebAssembly-sandkasse: det kreves ingen tolk på maskinen din, og skriptet har ikke tilgang til filsystemet ditt.

SpråkMotor
TypeScriptQuickJS (typene fjernes ved kompilering)
JavaScriptQuickJS
PythonPyodide (CPython kompilert til WebAssembly)
LuaLua 5.4 i WebAssembly
RubyCRuby i WebAssembly
RWebR
C#.NET i WebAssembly med Roslyn

Standardspråket er TypeScript.

Uansett språk eksponerer boksen det samme:

Inndatavalue (kalt input), code (streng)
Utdataresult
Konfigurasjonlanguage, code, timeout, packages
  • input — verdien som kommer inn på inngangsporten.
  • varsrun-variablene.
  • Standardutskriften i språket (console.log, print, puts, cat, Console.WriteLine) mater kjøringsloggen.
  • Verdien som returneres, går ut på result-porten. En feil eller et tidsavbrudd går ut på error.

timeout, i sekunder: 5 som standard, 60 på det høyeste. Et skript som bruker lenger tid, blir avbrutt, og kjøringen går ut på error-porten.

Feltet packages godtar en liste med { name, version }. De eksakte versjonene fungerer som buffernøkkel: avhengighetene løses opp ved første kjøring, bufres, og monteres deretter offline ved hver påfølgende kjøring — også i CI.

SpråkKilde
TypeScript / JavaScriptnpm (alt pakkes sammen)
PythonWheels i ren Python fra PyPI
LuaLuaRocks (kilder i ren Lua)
RubyGems i ren Ruby
RCRAN, via WebAssembly-repoet til WebR
C#Ingen — bare .NET-standardbiblioteket

Mange behov dekkes allerede av bokser som er både mer lesbare og raskere:

BehovBoks
Hente ut en verdi fra et svarEn forbindelsesselektor
Formatere en strengTransform template
Filtrere, sortere, aggregere en listeLister
Hashe, kode, signereKoding
Sjekke en strukturSchema validate

Spar Kode-boksen til logikk som faktisk er spesiell.