Gå til innholdet
Tilbake til Nymbot

Kunnskapsgrunnlag Kode

Kjør kode på en server

Når koden trenger mer enn enheten din kan gi den - et annet språk, pakker fra Internett, mer tid - kan Nymbot kjøre den på en server av seg selv, i en beholder laget for den ene kjøringen.

Hva er en server run

En server kjører starter en ny container, legger koden din i den, kjører den, sender tilbake det den trykket og ødelegger containeren. For balanse I det øyeblikket det faktisk løp.

Det finnes to måter i: Kjører på server på en kodeblokk, og serveren kjører som Nymbot ber om mens den fungerer i en depot.

For rask Python eller JavaScript som ikke trenger noe fra internett, den gratis Sandbox på din enhet Vanligvis er det nok.

Kjører en kodeblokk

Python, JavaScript, TypeScript, shell, Go, Rust, Java og Dart kodeblokkene i et svar har en Kjører på server knappen, når serverkjøringer er tilgjengelige. Det åpner et ark som viser:

  • Den bilde Koden vil kjøre på,
  • en tidsgrense å velge mellom: 1, 5 eller 15 minutter,
  • det meste kjøringen kan koste, i Pro-kreditter, for den tidsbegrensningen,
  • og, hvis chatten har filer vedlagt, en boks for å inkludere dem.

Presset Løp og utgangen strømmer inn under kodeblokken når den ankommer: hva den trykket, utgangskoden, hvor lenge den løp, eventuelle filer den skrev (hver med en redde b) hva som ble pålagt, og hva som ble pålagt

Stopp Serveren stenger umiddelbart og du betaler bare for tiden den kjørte. Stopp før serveren startet, koster det ingenting.

I en Anonyme mønstre Chat run betales fra den kastede nøkkelens Pro-kreditter, og vedlagte filer er aldri inkludert.

Språk og bilder

Hvert språk kjører på et bilde, et ferdig system med verktøyene som språket trenger.

bildeBrukes tilHva den inneholderServeren
PythonPythonPython 3.12 med pip, venv, build tools og git; numpy, pandas og pytest allerede installert0,5 CPU, 4 GB minne
Node.jsJavaScript og TypeScriptNode.js 22 med npm, pnpm og yarn, pluss Python 3, gjør og en C++ kompilator0,5 CPU, 4 GB minne
PolyglotShell, Go, Rust og Javabash, C og C++ bygge verktøy, Python 3, Node.js, Go, Rust med cargo, og Java 171 CPU, 6 GB minne
FløyterDartFlutter 3.32 og Dart2 CPU-er og 8 GB minne

Hva det koster

Servertid faktureres i trinn på 10 sekunder, fra å be om serveren til å lukke den, med 10 sekunder som minst en kjør kan koste.

  • Prisen vises på forsiden, som maksimalt. Du blir aldri belastet mer, og et løp som avsluttes tidlig koster mindre.
  • Maksimumet holdes mens løpet går. Når den er ferdig, tas den faktiske ladningen og resten slippes.
  • Et løp som ikke starter er gratis.
  • Kapsler for utgifter gjelder. Et løp som kan gå forbi en chat Utgifter til Cap Spør først, på samme måte som et svar gjør.

Fordi prisen følger Bitcoin-prisen, kan den bevege seg mellom øyeblikket du ser den og øyeblikket du trykker på Run.

Server som kjører i et repository

I en chat med en depot Koblet sammen, den Server løper Chip lar Nymbot be om å kjøre kommandoer mot koden din, for eksempel å installere avhengighetene og kjøre testene etter en endring.

Hver gang modellen ønsker å kjøre noe, pauser svaret og viser et kort med bildet, hele kommandoen, tidsgrensen og det meste det kan koste, pluss hvilket repository når chatten har flere.

  • Tillat en gang Den kjører mot repositoriet med redigeringene svaret har gjort så langt, og modellen får tilbake utgangskoden, slutten av utgangen og listen over filer kommandoen endret.
  • Nedgang Det koster ingenting, og svaret går videre uten det.

Hver løp spør.Hver løp er belastet separat fra svaret, og svaret lister opp løpene det gjorde og hva hver kostnad. Utgifter til CapDet blir avvist før du blir spurt.

Filene med kommandoendringer på serveren forblir der og kastes bort med beholderen. De er ikke skrevet til ditt repository. Endringer til repository kommer bare fra svarets egne redigeringer.

Hva er isolert

  • En ny container for hvert løp. Ingenting deles med et annet løp eller en annen person, og beholderen ødelegges når løpet avsluttes, enten det lykkes eller mislykkes.
  • Ingen internett, bortsett fra pakkeregistreringer. Beholderen kan lastes ned fra de stedene pakkene kommer fra: PyPI, npm og yarn, pub.dev og Googles lagring for Flutter og Dart, Go-modulen proxy, crates.io, Maven Central og GitHub for git-avhengigheter og slipper nedlastinger.
  • Det er bare det du velger som kommer inn. Koden, filene du inkluderte, eller filene i repositoriet.Dine nøkler, git token og chattene dine kommer aldri inn i beholderen.
  • Produksjonen blir behandlet som upålitelig. I et repository vises hva en kjør utskrives til modellen merket som eksterne data, og det blir fortalt å aldri følge instruksjoner inne i den.

Grenser

  • En server kjører på en gang for hver nøkkel. Starte en annen mens den første fortsatt går er avvist.
  • Tidsbegrensninger på 1, 5 eller 15 minutter for en kodeblokk.En repository run kan be om opptil 15 minutter, eller 20 på Flutter-bildet.
  • Opp til 1 MB kode, og opptil 200 vedlagte filer totalt 20 MB.
  • En repository på opptil 60 MB, pakket.
  • Opp til 256 KB av utgang. Alt som går forbi som er droppet, og kjøringen sier det.
  • Opptil 200 filer, totalt 8 MB, returneres for lagring.

Serverløp kan slås av for vedlikehold, enten som helhet eller som ett bilde om gangen. Kjører på server Knappen og chipset vises ikke.

Oppgavene er pane

I en repository chat, åpner sjekklisten knappen øverst i chat oppgaver Panel. Den viser hva hver tur gjorde, den nyeste først: filene den leste og redigerte, forplikter, endringer scoret for din anmeldelse, og hver server kjører med sin kommando, bilde, tid, kostnad og utgangsstatus. En server kjører som venter på ditt godkjenning kan tillates eller avvises fra panelet, det samme som fra kortet, og et løpende svar kan stoppes der.