Redbean 2.0 — veebirakenduste platvorm, mis on pakitud ĂŒhte universaalsesse tĂ€itmise ZIP-arhiivi

Tuntuks on saanud Redbean 2.0 vĂ€ljalase, mis pakub veebiserverit, mis vĂ”imaldab tarnida veebirakendusi universaalse tĂ€itmisfailina, mida saab kĂ€itada Linuxis, Windowsis, MacOS-is, FreeBSD-s, NetBSD-s ja OpenBSD-s. KĂ”ik veebirakendusega ja serveriga seotud ressursid on koondatud ĂŒhte tĂ€itmisfaili, mis on samas loodud ZIP-arhiivide formaadi kohaselt ja vĂ”imaldab lisafailide lisamiseks kasutada zip utiliiti. Ühe faili kĂ€itamine erinevates operatsioonisĂŒsteemides ja selle tuvastamine ZIP-arhiivina saavutatakse tĂ€itmisfailide peade manipuleerimise ja platvormidevahelise standardse C-raamatukogu Cosmopolitaniga sidumise abil. Projekti kood on jagatud ISC litsentsi alusel.

Projekti idee on tarnida ĂŒks tĂ€itmisfail „redbean.com“ koos sisseehitatud veebiserveriga. Veebirakenduse arendaja saab zip utiliidi abil lisada sellesse faili HTML ja Lua faile ning saada vĂ€ljundiks iseseisva veebirakenduse, mis töötab kĂ”igis populaarsetes operatsioonisĂŒsteemides ja ei vaja töötamiseks eraldi veebiserveri kĂ€ivitamist.

PĂ€rast saadud tĂ€itmisfaili kĂ€ivitamist kasutatakse sisseehitatud veebiserverit, et pÀÀseda juurde faili salvestatud veebirakendusele. Vaikimisi on töötleja seotud localhostiga, kuid serverit saab kasutada ka tavalisena avaliku veebiserverina (nĂ€iteks teenindab see projekti saiti). Sisseehitatud veebiserver toetab HTTPS-aadresside kasutamist ja saab töötada liivakasti isolatsiooniga, mis vĂ”imaldab kontrollida, millistele sĂŒsteemivahenditele pÀÀseb ligi. Serveri töö juhtimiseks selle kĂ€itamise ajal on saadaval interaktiivne REPL liides (kasutades Lua REPL-i ja raamatukogu bestline, mis on analoog GNU Readline’ile), mis vĂ”imaldab muuta protsessi olekut interaktiivses reĆŸiimis.

Kinnitatakse, et veebiserver suudab tavalisel arvutil töödelda rohkem kui miljon pĂ€ringut sekundis, edastades sisu gzip-meetodil kompressituna. Suurt jĂ”udlust toetab see, et zip ja gzip kasutavad ĂŒhist formaati, nii et andmed edastatakse ilma uuesti pakkimata juba kompressitud aladest zip-failis. Lisaks, kuna tĂ€idetav fail on loodud staatilise sidumise abil ja toote suurus on vĂ€ike, ei pĂ”hjusta funktsiooni fork kutsumine praktiliselt mingeid kulusid mĂ€lus hoidmisel.

Lisaks staatilise veebisisu töötlemisele ja JavaScripti tĂ€itmisele brauseris, saab veebirakenduse loogikat laiendada Lua skriptide, veebiraamistiku Fullmoon ja andmebaasi SQLite abil. TĂ€iendavates vĂ”imalustes on mĂ€rgitud argon2 paroolide hashimisĂŒsteemi tugi, IP piirkonna mÀÀramise vĂ”imalus MaxMindi andmebaasi jĂ€rgi ning juurdepÀÀs Cosmopolitan Unix API-le. Baassuutlikkus, mis hĂ”lmab veebiserverit, MbedTLS, Cosmopolitan, Lua ja SQLite, on vaid 1.9 MB.

Universaalne tĂ€idetav fail luuakse, ĂŒhendades erinevate operatsioonisĂŒsteemide spetsiifilisi segmente ja pĂ€iseid (PE, ELF, MACHO, OPENBSD, ZIP) ĂŒhte faili. Ühe tĂ€idetava faili kĂ€ivitamiseks Windows ja Unix sĂŒsteemides kasutatakse trikki, mille sisu seisneb Windows PE failide kodeerimises shell-skripti kujul, kasutades seda, et Thompson Shell ei kasuta skripti markerit «#!». Tulemuseks on tĂ€idetav fail, milles on kombineeritud mitu erinevat formaati, mida kasutatakse Linuxis, BSD-s, Windowsis ja macOS-is. $ 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) listen http://127.0.0.1:8080 >: waiting for command
 $ curl https://127.0.0.1:8080/hello.html hello $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 hello



Allikas: opennet.ru
Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster