Slaan oor na die inhoud
Terug na Nymbot

Kennisbasis Kodeer

Kode op 'n bediener

Wanneer kode meer benodig as wat jou toestel kan gee - 'n ander taal, pakkette van die internet, meer tyd - Nymbot kan dit op 'n bediener van sy eie, in 'n container wat gemaak is vir daardie een hardloop.

Wat is 'n Server Run

'N Server Run begin 'n nuwe container, sit jou kode daarin, hardloop dit, stuur terug wat dit gedruk het en vernietig die container. Die balans vir die tyd wat hy eintlik loop.

Daar is twee maniere in: Draai op die server op 'n kodeblok, en die bediener loop wat Nymbot vra terwyl dit in 'n bewaarplek.

Vir vinnige Python of JavaScript wat niks van die internet nodig het nie, die gratis Sandbox op jou toestel Dit is gewoonlik genoeg.

Uitvoering van 'n kode blok

Python, JavaScript, TypeScript, shell, Go, Rust, Java en Dart kode blokke in 'n antwoord het 'n Draai op die server die knoppie, wanneer die bediener hardloop beskikbaar is. Dit oopmaak 'n blad wat wys:

  • die Die beeld die kode sal voortgaan,
  • 'n tydsbestek om te kies: 1, 5 of 15 minute,
  • die meeste die loop kan kos, in Pro-krediete, vir daardie tydsbeperking,
  • en, as die chat lêers bygevoeg is, 'n vak om hulle in te sluit.

Die pers loop en die uitvoer vloei in onder die kodeblok as dit aankom: wat dit gedruk het, die uitgangskode, hoe lank dit hardloop, enige lêers wat dit geskryf het (elke met 'n spaar knoppie), en wat dit aangekla is.

Stop die Die bediener word onmiddellik gesluit en jy betaal slegs vir die tyd wat dit gedoen het.

In 'n Anonieme mode Chat die loop word betaal uit die gooi sleutel se Pro-krediete, en bygevoegde lêers word nooit ingesluit nie.

Taal en beelde

Elke taal loop op 'n beeld, 'n voorbereide stelsel met die gereedskap wat die taal benodig.

Die beeldGebruik virWat dit bevatDie server
Die PythonDie PythonPython 3.12 met pip, venv, bou gereedskap en git; numpy, pandas en pytest reeds geïnstalleer0.5 CPU, 4 GB geheue
Node.jsGeskryf deur TypeScriptNode.js 22 met npm, pnpm en yarn, plus Python 3, maak en 'n C++ kompiler0.5 CPU, 4 GB geheue
PolygloteShell, Go, Rust en Javabash, C en C++ bou gereedskap, Python 3, Node.js, Go, Rust met vrae, en Java 171 CPU, 6 GB geheue
VloeiDartFlutter 3.32 en Dart2 CPU's, 8 GB geheue

Wat dit kos

Server tyd word in stappe van 10 sekondes, van vra vir die bediener om dit af te sluit, met 10 sekondes as die minste 'n loop kan koste.

  • Die prys word aan die voorkant aangedui, as maksimum. Dit is die hele tydsbeperking op daardie koers.Jy word nooit meer opgelê nie, en 'n hardloop wat vroeër beëindig, kos minder.
  • Die maksimum word gehou terwyl die hardloop gaan. Wanneer dit eindig, word die werklike lading geneem en die res vrygestel.
  • 'N Run wat nie begin nie, is gratis.
  • Uitgaande caps word toegepas. 'N Run wat kan gaan oor 'n chat Uitgaande hoof Vra eers, dieselfde manier as wat 'n antwoord doen.

Omdat die prys die Bitcoin-koers volg, kan dit verskuif tussen die oomblik dat jy dit sien en die oomblik dat jy Draai druk.

Server loop in 'n repository

In 'n chat met 'n bewaarplek verbind, die Die server loop Die chip laat Nymbot vra om opdragte teen jou kode uit te voer, soos om die afhankings te installeer en die toetse na 'n verandering uit te voer.

Elke keer as die model iets wil hardloop, stop die antwoord en toon 'n kaart met die prentjie, die volledige bevel, die tydsbeperking en die meeste wat dit kan koste, plus watter repository wanneer die chat het verskeie.

  • Laat 'n keer Dit loop teen die repository met die bewerkings wat die antwoord tot dusver gedoen het, en die model kry terug die uitgangskode, die einde van die uitvoer en die lys van lêers wat die bevel verander het.
  • afname Dit gaan niks en kos niks nie.Die antwoord gaan voort sonder dit.

Elke hardloop vra. elkeen word afsonderlik van die antwoord in rekening geneem, en die antwoord lys die hardloop wat dit gedoen het en wat elke koste het. Uitgaande hoofDit word verwerp voordat jy gevra word.

Bestande 'n bevel veranderinge op die bediener bly daar en word weggegooi met die container. Hulle is nie geskryf in jou repository. Veranderings in die repository kom slegs uit die antwoord se eie bewerkings.

Wat is geïsoleer

  • 'N Verse container vir elke loop. Niks word gedeel met 'n ander run of ander persoon, en die container word vernietig wanneer die run eindig, of dit suksesvol of misluk het.
  • Geen internet behalwe pakketregisters nie. Die container kan afgelaai word van die plekke waar pakkette kom van: PyPI, npm en yarn, pub.dev en Google se opslag vir Flutter en Dart, die Go-module-proxy, crates.io, Maven Central en GitHub vir git-afhanklikhede en vrylatings.
  • Net wat jy kies, gaan in. Die kode, die lêers wat jy ingesluit het, of die lêers van die repository. Jou sleutels, jou git token en jou gesprekke kom nooit in die container nie.
  • Die uitkoms word behandel as ongetroubaar. In 'n repository, wat 'n loop afdruk word getoon aan die model gemerk as eksterne data, en dit word gesê om nooit instruksies daarin te volg nie.

Die grense

  • Een bediener loop op 'n tyd vir elke sleutel. Begin 'n tweede een terwyl die eerste nog gaan word geweier.
  • Tydsbeperkings van 1, 5 of 15 minute vir 'n kode blok. 'N repository loop kan tot 15 minute, of 20 op die Flutter beeld vra.
  • Tot 1 MB van kode, en tot 200 bygevoegde lêers met 'n totaal van 20 MB.
  • 'N Repository van tot 60 MB, verpak.
  • Tot 256 KB uitvoer. Alles wat verby is, word neergelê, en die loop sê dit.
  • Tot 200 lêers, 8 MB in totaal, is teruggekeer om te red.

Server-werkings kan vir onderhoud uitgeschak word, as 'n hele of een beeld op 'n tyd. Draai op die server Die knoppie en die chip word nie getoon nie.

Die taak pane

In 'n repository chat, die checklist knoppie aan die boonste kant van die chat Die taak pane. Dit lys wat elke draai gedoen het, die nuutste eerste: die lêers wat dit gelees en bewerk, verbind, veranderinge wat vir jou resensie plaasgevind is, en elke bediener wat met sy bevel, beeld, tyd, koste en uitgangstoestand hardloop. 'n bediener wat wag vir jou goedkeuring, kan toegelaat of verwerp word van die pane, dieselfde as van sy kaart, en 'n hardlooprespons kan daar gestop word.