Hoppa till innehållet
Tillbaka till Nymbot

Kunskapsbas Koden är

Kör kod på en server

När koden behöver mer än din enhet kan ge det - ett annat språk, paket från internet, mer tid - kan Nymbot köra den på en server av sig själv, i en behållare gjord för att köra.

Vad är en server run

En server kör startar en ny behållare, lägger din kod i den, kör den, skickar tillbaka vad den har skrivit ut och förstör behållaren. För balans För den tiden det faktiskt sprang.

Det finns två sätt i: Kör på server på ett kodblock, och servern körs som Nymbot ber om medan den arbetar i en förvaret.

För snabb Python eller JavaScript som inte behöver något från internet, den fria Sandbox på din enhet Vanligtvis räcker det.

Kör en kodblock

Python, JavaScript, TypeScript, shell, Go, Rust, Java och Dart kodblock i ett svar har en Kör på server knappen, när serverkörningar är tillgängliga. Det öppnar ett ark som visar:

  • den bild Koden kommer att köras på,
  • en tidsgräns att välja mellan: 1, 5 eller 15 minuter,
  • det mesta som körningen kan kosta, i Pro-krediter, för den tidsgränsen,
  • och, om chatten har bifogade filer, en ruta för att inkludera dem. De går bara om du kontrollerar det.

Tryck Löpning och utgången strömmar in under kodblocket när det anländer: vad det tryckte, utgångskoden, hur länge det gick, alla filer det skrev (var och en med en Rädda knappen), och vad det var anklagad för.

Stanna upp Servern stängs av omedelbart och du betalar bara för den tid den körde. Stoppad innan servern startade kostar det ingenting.

I en Anonymt mode chatt löpningen betalas från kastnyckelns Pro-krediter, och bifogade filer ingår aldrig.

Språk och bilder

Varje språk körs på en bild, ett färdigt system med de verktyg som språket behöver.

BildenAnvänds förVad den innehållerServern
Python ärPython ärPython 3.12 med pip, venv, build tools och git; numpy, pandas och pytest redan installerat0,5 CPU och 4 GB minne
Node.jsJavaScript och TypeScriptNode.js 22 med npm, pnpm och yarn, plus Python 3, make och en C++-kompilator0,5 CPU och 4 GB minne
PolyglotShell, Go, Rust och Javabash, C och C++ byggverktyg, Python 3, Node.js, Go, Rust with cargo och Java 171 CPU, 6 GB minne
FlöjtDartFlutter 3.32 och Dart2 CPU och 8 GB minne

Vad det kostar

Servertiden faktureras i steg på 10 sekunder, från att be om servern att stänga den, med 10 sekunder som minst en körning kan kosta.

  • Priset visas på framsidan, som maximalt. Du debiteras aldrig mer, och ett lopp som slutar tidigt kostar mindre.
  • Maximum hålls medan loppet pågår. När det slutar tas den faktiska laddningen och resten släpps.
  • Ett lopp som inte startar är gratis.
  • Kapslar för utgifter tillämpas. En löpning som kan gå förbi en chatt Att spendera cap Fråga först, på samma sätt som ett svar gör.

Eftersom priset följer Bitcoin-priset kan det flytta mellan det ögonblick du ser det och det ögonblick du trycker på Kör.

Server som körs i ett repository

I en chatt med en förvaret anslutna, den Servern kör Chip tillåter Nymbot att be att köra kommandon mot din kod, till exempel att installera beroenden och köra testerna efter en förändring.

Varje gång modellen vill köra något pausar svaret och visar ett kort med bilden, den fullständiga kommandot, tidsgränsen och det mesta det kan kosta, plus vilket repository när chatten har flera.

  • Tillåt en gång Den körs mot lagret med de redigeringar svaret har gjort hittills, och modellen får tillbaka utgångskoden, slutet på utgången och listan över filer som kommandot ändrat.
  • nedgången Det kostar ingenting, och svaret går vidare utan det.

Varje löpning frågar. var och en debiteras separat från svaret, och svaret listar de löpningar det gjorde och vad varje kostar. Att spendera capDet vägras innan du blir ombedd.

Filer med kommandot ändringar på servern stannar där och kastas bort med behållaren. De är inte skrivna till ditt arkiv. Ändringar i arkivet kommer bara från svarets egna redigeringar.

Vad är isolerad

  • En fräsch behållare för varje lopp. Ingenting delas med en annan löpning eller annan person, och behållaren förstörs när löpningen slutar, oavsett om den lyckades eller misslyckades.
  • Inget internet utom paketregistreringar. Behållaren kan laddas ner från de platser där paket kommer från: PyPI, npm och yarn, pub.dev och Googles lagring för Flutter och Dart, Go-modulen proxy, crates.io, Maven Central och GitHub för git-beroende och släpp nedladdningar. Det kan bara ladda ner. Det kan inte skicka något till dem eller nå någon annan adress.
  • Bara det du väljer går in. Koden, de filer du inkluderade, eller arkivets filer.Dina nycklar, din git token och dina chattar kommer aldrig in i behållaren.
  • Utgången behandlas som opålitlig. I ett repository visas vad en körning skriver ut till modellen som är markerad som externa data, och det sägs aldrig att följa instruktioner inuti den.

gränser

  • En server körs på en gång för varje nyckel. Starta en andra medan den första fortfarande går avvisas.
  • Tidsbegränsningar på 1, 5 eller 15 minuter för ett kodblock.En repository-körning kan begära upp till 15 minuter, eller 20 på Flutter-bilden.
  • Upp till 1 MB kod och upp till 200 bifogade filer totalt 20 MB.
  • Ett lagringsutrymme på upp till 60 MB, packad.
  • Upp till 256 KB av utgång. Allt som passerar som släpps, och löpningen säger det.
  • Upp till 200 filer, totalt 8 MB, skickas tillbaka för att spara.

Server körningar kan stängas av för underhåll, som en helhet eller en bild i taget. Kör på server Knappen och chipen visas inte.

Uppgifterna pane

I en repository-chatt öppnar checklistknappen högst upp i chatten Uppgifterna pane. Den listar vad varje tur gjorde, nyaste först: de filer den läste och redigerade, förbinder, ändringar steg för din recension, och varje server körs med sitt kommando, bild, tid, kostnad och utgångsstatus. En server kör väntar på ditt godkännande kan tillåtas eller avvisas från panelen, samma som från sitt kort, och ett löpande svar kan stoppas där.