Redbean 2.0 - platforma për aplikacione web, e paketuara në një arkiv të përbashkët ZIP

U publikua versione 2.0 të projektit Redbean, i cili ofron një server web që lejon dorëzimin e aplikacioneve web në formën e një skedari ekzekutiv universale, i cili mund të ekzekutohet në Linux, Windows, MacOS, FreeBSD, NetBSD dhe OpenBSD. Të gjitha burimet e lidhura me aplikacionin web dhe serverin kompresohen në një skedar ekzekutiv, i cili është gjithashtu i përshtatshëm me formatin e arkivave ZIP dhe lejon përdorimin e utilitarit zip për të shtuar skedarë të tjerë. Mundësia e ekzekutimit të një skedari në OS të ndryshme dhe njohja e tij si arkivi ZIP arrihet përmes manipulimeve me titujt e skedarëve ekzekutivë dhe lidhjes me bibliotekën standarde të C Cosmopolitan shumëplatformore. Kodi i projektit shpërndahet nën licencën ISC.

Ideja e projektit është dorëzimi i një skedari ekzekutiv "redbean.com" me një server web të integruar. Zhvilluesi i aplikacionit web mund të përdorë utilitarin zip për të shtuar skedarë HTML dhe Lua në këtë skedar dhe të marrë një aplikacion web të plotë, që funksionon në të gjitha sistemet operative të njohura dhe nuk kërkon për të funksionuar një server web të veçantë në sistem.

Pas ekzekutimit të skedarit ekzekutiv, për t'u lidhur me aplikacionin web të ruajtur në skedarin e tyre përdoret serveri web i integruar. Në parazgjedhje, trajtuesi i lidhur është localhost, por serveri mund të përdoret gjithashtu si një server web publik normal (p.sh., ky server shërben sitin e projektit). Serveri web i integruar mbështet lidhjen përmes HTTPS dhe mund të ekzekutohet duke përdorur izolimin sandbox, i cili lejon kontrollin se në cilat ndërfaqe sistemore po bëhet kërkesë. Një ndërfaqe interaktive REPL ofrohet për menaxhimin e punës së serverit gjatë ekzekutimit të tij (bazuar në Lua REPL dhe bibliotekën bestline, një ekuivalente e GNU Readline), duke dhënë mundësinë për të ndryshuar gjendjen e procesit në mënyrë interaktive.

Këtu thuhet se serveri web është në gjendje të trajtojë më shumë se një milion kërkesa në sekondë në një PC të zakonshëm, duke kthyer përmbajtje të kompresuar me metodën gzip. Performanca e lartë kontribuohet nga fakti që zip dhe gzip përdorin një format të përbashkët, prandaj të dhënat kthehen pa ripakim nga fusha të kompresuara tashmë në skedarin zip. Për më tepër, pasi skedari ekzekutiv është krijuar duke përdorur lidhje statike dhe ka një madhësi të vogël, thirrja e funksionit fork për të sjellë pothuajse nuk shkakton shpenzime shtesë gjatë vendosjes në memorie.

Përveç trajtimit të përmbajtjes statike web dhe ekzekutimit të JavaScript në shfletues, logjika e aplikacionit web mund të zgjerohen me skripte në gjuhën Lua, framework-un web Fullmoon dhe DBMS SQLite. Disa nga mundësitë shtesë përfshijnë mbështetje për skemën e hashimit të fjalëkalimeve argon2, mundësinë për të përcaktuar rajonin IP përmes bazës MaxMind dhe qasje në Unix API të bibliotekës Cosmopolitan. Madhësia e stack-ut bazë, që përfshin serverin web, MbedTLS, Cosmopolitan, Lua dhe SQLite, është vetëm 1.9 MB.

Skedari ekzekutiv universale formohet duke bashkuar segmente dhe tituj specifikĂ« pĂ«r sisteme tĂ« ndryshme operuese (PE, ELF, MACHO, OPENBSD, ZIP) nĂ« njĂ« skedar. PĂ«r tĂ« siguruar ekzekutimin e njĂ« skedari ekzekutiv nĂ« Windows dhe sistemet Unix pĂ«rdoret njĂ« tru, i cili ka tĂ« bĂ«jĂ« me kodimin e skedarĂ«ve Windows PE si njĂ« skript shell, duke bĂ«rĂ« pĂ«rdorimin e faktit qĂ« Thompson Shell nuk pĂ«rdor shenjĂ«n e skriptit "#!". Si rezultat, krijohet njĂ« skedar ekzekutiv, nĂ« tĂ« cilin janĂ« kombinuar disa formate tĂ« ndryshme tĂ« pĂ«rdorura nĂ« Linux, BSD, Windows dhe 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) 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



Burimi: opennet.ru
Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster