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

Serbestberdana projeya Redbean 2.0 tê pêşkêş kirin, serverek webê pêşkêşî dike ku dihêle hûn serîlêdanên malperê di forma pelek darvekirî ya gerdûnî de ku dikare li ser Linux, Windows, MacOS, FreeBSD, NetBSD û OpenBSD were darve kirin, peyda bike. Hemî çavkaniyên ku bi serîlêdana webê û serverê ve girêdayî ne di pelek yekane ya darvekirinê de têne berhev kirin, ku bi forma arşîva ZIP re hevaheng e û dihêle hûn amûra zip bikar bînin da ku pelên din zêde bikin. Qabiliyeta ku meriv pelek li ser OS-yên cihêreng bixebite û ew wekî arşîvek ZIP were nas kirin bi manîpulekirina sernavên pelê yên îcrakar û girêdana bi pir-platforma standard pirtûkxaneya C Cosmopolitan ve tê bidestxistin. Koda projeyê di bin lîsansa ISC de tê belav kirin.

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.

Pelek darvekirî ya gerdûnî bi berhevkirina beş û sernavên taybetî yên pergalên xebitandinê yên cihêreng (PE, ELF, MACHO, OPENBSD, ZIP) di yek pelê de pêk tê. Ji bo ku pê ewle bibe ku pelek yekane ya îcrakar li ser pergalên Windows û Unix-ê dimeşîne, hîleyek ev e ku pelên Windows PE wekî skrîptek şêlê kod bikin, ji vê yekê sûd werdigirin ku Thompson Shell nîşankera skrîptê "#!" bikar nayîne. Encam pelek îcrakar e ku çend formatên cihêreng ên ku di Linux, BSD, Windows û macOS de têne bikar anîn berhev dike. $ 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ê… $ 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

Add a comment