Redbean 2.0 ji bo serîlêdanên webê platformek e ku di arşîvek ZIP-ya darvekirî ya gerdûnî de hatî pak kirin

Redbean 2.0 hatiye berdan, serverek webê pêşkêş dike ku dihêle serîlêdanên webê bi şiklê pelek bicîhkirî ya gerdûnî werin radest kirin ku dikare di ... de were bicîh kirin. Linux, Windows, MacOS, FreeBSD, NetBSD, û OpenBSD. Hemû çavkaniyên têkildarî sepanên webê û serverê di pelêkî bicîhkirî yê yekane de têne berhev kirin, ku bi formata arşîva ZIP re hevaheng e û dihêle ku amûra zip ji bo lêzêdekirina pelên zêde were bikar anîn. Şîyana xebitandina pelêkî yekane li ser pergalên xebitandinê yên cûda û naskirina wê wekî arşîvek ZIP bi rêya manîpulekirina sernivîsên pelên bicîhkirî û girêdana bi pirtûkxaneya standard C ya Cosmopolitan a pirplatformî ve tê bidestxistin. Koda projeyê di bin lîsansa ISC de tê belavkirin.

Fikra projeyê ev e ku yek pelek îcrakar "redbean.com" bi serverek malperek çêkirî re peyda bike. Pêşdebirek serîlêdana malperê dikare amûra zip bikar bîne da ku pelên HTML û Lua li vê pelê zêde bike û serîlêdanek webê ya xweser a ku li ser hemî pergalên xebitandinê yên populer dimeşîne û hewce nake ku serverek webê ya cuda li ser pergalê bixebite, bistîne.

Piştî destpêkirina pelê encamkirî ya encam, servera malperê ya çêkirî tê bikar anîn da ku bigihîje serîlêdana webê ya ku di pelê de hatî tomarkirin. Ji hêla xwerû, hilber bi localhost-ê ve girêdayî ye, lê server dikare wekî web serverek gelemperî ya birêkûpêk jî were bikar anîn (mînak, ev server malpera projeyê re xizmet dike). Pêşkêşkara Web-ê ya çêkirî gihîştina HTTPS-ê piştgirî dike û dikare bi karanîna veqetandina sandboxê were darve kirin, ku dihêle hûn kontrol bikin ka kîjan navrûyên pergalê têne gihîştin. Ji bo kontrolkirina xebata serverê di dema darvekirina wê de, navgînek REPL ya înteraktîf tê peyda kirin (li ser bingeha Lua REPL û pirtûkxaneya bestline, analogek GNU Readline), ku dihêle hûn rewşa pêvajoyê bi înteraktîf biguhezînin.

Tê îdia kirin ku servera malperê dikare li ser PC-ya birêkûpêk di çirkeyê de zêdetirî mîlyon daxwazî ​​bişopîne, naveroka gzip-compressed xizmet bike. Tiştê ku ji performansê re dibe alîkar ev e ku zip û gzip formatek hevpar bikar tînin, ji ber vê yekê dane bêyî ku ji deverên ji berê hatine berhev kirin di pelê zip de ji nû ve werin pakij kirin têne pêşkêş kirin. Wekî din, ji ber ku darveker bi karanîna girêdana statîk ve hatî afirandin û bi mezinahiyê piçûk e, gazîkirina fork li ser wê kêm-zêde bîra bîranînê dide.

Digel hilberandina naveroka webê ya statîk û pêkanîna JavaScript-ê di gerokê de, mantiqa serîlêdana malperê dikare bi karanîna nivîsarên li Lua, çarçoweya tevna Fullmoon û SQLite DBMS were berfireh kirin. Taybetmendiyên pêvek piştgirî ji bo nexşeya hashkirina şîfreya argon2, şiyana diyarkirina herêma IP-yê bi karanîna databasa MaxMind, û gihîştina Unix API-ya pirtûkxaneya Cosmopolitan heye. Mezinahiya stoka bingehîn, ku serverek malperê, MbedTLS, Cosmopolitan, Lua û SQLite vedihewîne, tenê 1.9 MB e.

Pelêkî bicîhanîn ê gerdûnî bi hevgirtina beş û sernivîsên taybetî yên pergalên xebitandinê yên cûda (PE, ELF, MACHO, OPENBSD, ZIP) di pelêkî yekane de tê çêkirin. Ji bo ku pelêkî bicîhanîn ê yekane dikare di... de were destpêkirin... Windows û sîstemên Unix hîleyek bikar tînin ku tê de kodkirina pelan heye Windows PE wekî skrîpteke shell bikar tîne, ji vê rastiyê sûd werdigire ku Thompson Shell nîşaneya skrîptê "#!" bikar nayne. Encam pelek bicîhkirî ye ku çend formatên cûda yên ku di Linux, BSD, Windows и macOS. $ curl https://redbean.dev/redbean-demo-2.0.7.com >redbean.com $ chmod +x redbean.com $ zip redbean.com hello.html $ zip redbean.com hello.lua $ ./redbean.com -vv I2022-06-23T08:27:14+000767:redbean] (srvr) guhdarî bike http://127.0.0.1:8080 >: li benda fermanê ye… $ curl https://127.0.0.1:8080/hello.html silav $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 silav



Source: opennet.ru
Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster