Redbean 2.0 ndi nsanja ya mapulogalamu a pa intaneti omwe amapakidwa muzosunga zakale za ZIP

Kutulutsidwa kwa pulojekiti ya Redbean 2.0 kwaperekedwa, ndikupereka seva yapaintaneti yomwe imakulolani kuti mupereke mapulogalamu a pa intaneti mu mawonekedwe a fayilo yapadziko lonse yomwe ingathe kuchitidwa pa Linux, Windows, MacOS, FreeBSD, NetBSD ndi OpenBSD. Zida zonse zomwe zimagwirizanitsidwa ndi pulogalamu yapaintaneti ndi seva zimaphatikizidwa kukhala fayilo imodzi yomwe ingathe kuchitidwa, yomwe imagwirizana ndi mtundu wa zolemba zakale za ZIP ndipo imakupatsani mwayi wogwiritsa ntchito zip kuti muwonjezere mafayilo ena. Kutha kuyendetsa fayilo imodzi pama OS osiyanasiyana ndikuzindikirika ngati zosungira za ZIP kumatheka posintha mitu yamafayilo yomwe ingathe kuchitidwa ndikulumikizana ndi laibulale ya C yamitundu yambiri ya Cosmopolitan. Khodi ya polojekitiyi imagawidwa pansi pa layisensi ya ISC.

Lingaliro la polojekitiyi ndikupereka fayilo imodzi "redbean.com" yokhala ndi seva yolumikizidwa. Wopanga mapulogalamu a pa intaneti atha kugwiritsa ntchito zip kuti awonjezere mafayilo a HTML ndi Lua ku fayiloyi ndikupeza pulogalamu yokhazikika yapaintaneti yomwe imagwira ntchito pamakina onse otchuka ndipo safuna seva yapaintaneti kuti igwire ntchito.

Pambuyo poyambitsa fayilo yomwe ingathe kuchitidwa, seva yapaintaneti yokhazikika imagwiritsidwa ntchito kuti mupeze pulogalamu yapaintaneti yosungidwa mufayiloyo. Mwachikhazikitso, wothandizirayo amamangiriridwa ku localhost, koma seva imatha kugwiritsidwanso ntchito ngati seva yapagulu yapagulu (mwachitsanzo, seva iyi imapereka tsamba la projekiti). Seva ya Webusaiti yomangidwa imathandizira kupeza kwa HTTPS ndipo imatha kuchitidwa pogwiritsa ntchito sandbox kudzipatula, yomwe imakulolani kuti muzitha kuyang'anira njira zomwe zimafikira. Kuti muwongolere magwiridwe antchito a seva panthawi yake, mawonekedwe olumikizana a REPL amaperekedwa (kutengera Lua REPL ndi laibulale ya bestline, analogue ya GNU Readline), zomwe zimapangitsa kuti zitheke kusintha momwe ntchitoyi ikuyendera.

Akuti seva yapaintaneti imatha kukonza zopempha zopitilira miliyoni pa sekondi imodzi pa PC yokhazikika, ndikutumizira zomwe zili ndi gzip. Chomwe chimathandizira magwiridwe antchito ndikuti zip ndi gzip zimagwiritsa ntchito mawonekedwe ofanana, kotero kuti data imatumizidwa popanda kupakidwanso kuchokera kumadera omwe ali kale mu fayilo ya zip. Kuonjezera apo, popeza zomwe zingagwiritsidwe ntchito zimapangidwa pogwiritsa ntchito static kugwirizana ndipo ndizochepa kukula kwake, kuyitana foloko kumayambitsa kukumbukira pang'ono.

Kuphatikiza pa kukonza zomwe zili pa intaneti komanso kugwiritsa ntchito JavaScript mu msakatuli, malingaliro ogwiritsira ntchito intaneti amatha kukulitsidwa pogwiritsa ntchito zolemba mu Lua, Fullmoon web framework ndi SQLite DBMS. Zina zowonjezera zikuphatikizapo chithandizo cha argon2 password hashing scheme, kutha kudziwa dera la IP pogwiritsa ntchito database ya MaxMind, ndi kupeza Unix API ya laibulale ya Cosmopolitan. Kukula kwa stack yoyambira, yomwe imaphatikizapo seva yapaintaneti, MbedTLS, Cosmopolitan, Lua ndi SQLite, ndi 1.9 MB yokha.

Fayilo yokhazikika yapadziko lonse lapansi imapangidwa pophatikiza zigawo ndi mitu yokhudzana ndi machitidwe osiyanasiyana (PE, ELF, MACHO, OPENBSD, ZIP) mufayilo imodzi. Kuonetsetsa kuti fayilo imodzi yomwe ingathe kuchitidwa ikugwira ntchito pa Windows ndi Unix machitidwe, chinyengo ndikuyika mafayilo a Windows PE ngati chipolopolo, kutenga mwayi kuti Thompson Shell sagwiritsa ntchito chizindikiro cha "#!" Zotsatira zake ndi fayilo yotheka yomwe imaphatikiza mitundu ingapo yogwiritsidwa ntchito mu Linux, BSD, Windows ndi macOS. $ curl https://redbean.dev/redbean-demo-2.0.7.com >redbean.com $ chmod +x redbean.com $ zip redbean.com moni.html $ zip redbean.com moni.lua $ ./redbean .com -vv I2022-06-23T08:27:14+000767:redbean] (srvr) mvetserani http://127.0.0.1:8080 >: kudikira lamulo… $ curl https://127.0.0.1:8080/hello .html moni $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 moni



Source: opennet.ru

Kuwonjezera ndemanga