I-Redbean 2.0 iyinkundla yezinhlelo zokusebenza zewebhu ezipakishwe kungobo yomlando ye-ZIP esebenzisekayo emhlabeni wonke.

Ukukhishwa kwephrojekthi ye-Redbean 2.0 kuyethulwa, kuhlinzeka ngeseva yewebhu ekuvumela ukuthi ulethe izinhlelo zokusebenza zewebhu ngendlela yefayela elisebenzisekayo lomhlaba wonke elingasetshenziswa ku-Linux, Windows, MacOS, FreeBSD, NetBSD kanye ne-OpenBSD. Zonke izinsiza ezihlotshaniswa nohlelo lwewebhu kanye neseva zihlanganiswa zaba ifayela elilodwa elisebenzisekayo, elihambisana nefomethi yengobo yomlando ye-ZIP futhi ikuvumela ukuthi usebenzise insiza ye-zip ukwengeza amafayela engeziwe. Amandla okusebenzisa ifayela elilodwa kuma-OS ahlukene futhi alenze liqashelwe njengengobo yomlando ye-ZIP lifinyelelwa ngokushintsha izihloko zefayela ezisebenzisekayo nokuxhumanisa nomtapo wezincwadi ojwayelekile we-C we-Cosmopolitan wezingxenyekazi eziningi. Ikhodi yephrojekthi isatshalaliswa ngaphansi kwelayisensi ye-ISC.

Umqondo wephrojekthi uwukunikeza ifayela elilodwa elisebenzisekayo elithi β€œredbean.com” elineseva yewebhu eyakhelwe ngaphakathi. Umthuthukisi wohlelo lokusebenza lwewebhu angasebenzisa insiza ye-zip ukwengeza amafayela e-HTML kanye ne-Lua kuleli fayela futhi athole uhlelo lokusebenza lwewebhu oluziqukathe lona olusebenza kuzo zonke izinhlelo zokusebenza ezidumile futhi olungadingi iseva yewebhu ehlukile ukuze isebenze ohlelweni.

Ngemva kokwethula ifayela elisebenzisekayo eliwumphumela, iseva yewebhu eyakhelwe ngaphakathi isetshenziselwa ukufinyelela uhlelo lwewebhu olulondolozwe kufayela. Ngokuzenzakalelayo, isibambi sinamathiselwe kumsingathi wendawo, kodwa iseva ingasetshenziswa njengeseva yewebhu yomphakathi evamile (isibonelo, le seva isebenzela iwebhusayithi yephrojekthi). Iseva yewebhu eyakhelwe ngaphakathi isekela ukufinyelela kwe-HTTPS futhi ingenziwa kusetshenziswa i-sandbox isolation, ekuvumela ukuthi ulawule ukuthi yiziphi izixhumanisi zesistimu ezifinyelelwayo. Ukuze ulawule ukusebenza kweseva phakathi nokusetshenziswa kwayo, kuhlinzekwa isixhumi esibonakalayo se-REPL esisebenzisanayo (ngokusekelwe ku-Lua REPL kanye nelabhulali ye-bestline, i-analogue ye-GNU Readline), okwenza kube nokwenzeka ukushintsha isimo senqubo ngokuhlanganyela.

Kuthiwa iseva yewebhu iyakwazi ukucubungula izicelo ezingaphezu kwesigidi ngomzuzwana ku-PC evamile, isebenzisa okuqukethwe okucindezelwe yi-gzip. Okusiza ukusebenza ukuthi i-zip ne-gzip zisebenzisa ifomethi evamile, ngakho-ke idatha inikezwa ngaphandle kokupakishwa kabusha ezindaweni esezivele zicindezelwe kufayela le-zip. Ukwengeza, njengoba okusebenzisekayo kudalwe kusetshenziswa ukuxhumanisa okumile futhi kukuncane ngosayizi, ukubiza imfoloko kuyo kwethula inkumbulo encane kakhulu.

Ngaphezu kokucubungula okuqukethwe kwewebhu okumile nokusebenzisa i-JavaScript esipheqululini, ingqondo yohlelo lokusebenza lwewebhu inganwetshwa kusetshenziswa imibhalo e-Lua, uhlaka lwewebhu lwe-Fullmoon kanye ne-SQLite DBMS. Izici ezengeziwe zifaka usekelo lwe-argon2 password hashing scheme, ikhono lokunquma isifunda se-IP usebenzisa isizindalwazi seMaxMind, kanye nokufinyelela ku-Unix API yelabhulali ye-Cosmopolitan. Usayizi wesitaki esiyisisekelo, ohlanganisa iseva yewebhu, i-MbedTLS, i-Cosmopolitan, i-Lua ne-SQLite, ingu-1.9 MB kuphela.

Ifayela elisebenzisekayo lomhlaba wonke lakhiwa ngokuhlanganisa izingxenye nezihloko eziqondene nezinhlelo zokusebenza ezihlukene (PE, ELF, MACHO, OPENBSD, ZIP) kufayela elilodwa. Ukuqinisekisa ukuthi ifayela elilodwa elisebenzisekayo lisebenza ezinhlelweni ze-Windows ne-Unix, iqhinga iwukuba uhlanganise amafayela e-Windows PE njengombhalo wegobolondo, usebenzisa leli thuba lokuthi u-Thompson Shell akasebenzisi umaka wombhalo othi β€œ#!”. Umphumela uyifayela elisebenzisekayo elihlanganisa amafomethi amaningana ahlukene asetshenziswa ku-Linux, BSD, Windows kanye ne-macOS. $ curl https://redbean.dev/redbean-demo-2.0.7.com >redbean.com $ chmod +x redbean.com $ zip redbean.com sawubona.html $ zip redbean.com sawubona.lua $ ./redbean .com -vv I2022-06-23T08:27:14+000767:redbean] (srvr) lalela http://127.0.0.1:8080 >: ilinde umyalo… $ curl https://127.0.0.1:8080/hello .html sawubona $ printf 'THOLA /hello.lua\n\n' | nc 127.0.0.1 8080 sawubona



Source: opennet.ru

Engeza amazwana