Redbean 2.0 universal bajariladigan ZIP arxiviga joylashtirilgan veb-ilovalar uchun platformadir

Linux, Windows, MacOS, FreeBSD, NetBSD va OpenBSD da bajarilishi mumkin bo'lgan universal bajariladigan fayl ko'rinishida veb-ilovalarni yetkazib berish imkonini beruvchi veb-serverni taklif qiluvchi Redbean 2.0 loyihasining versiyasi taqdim etilgan. Veb-ilova va server bilan bog'liq barcha resurslar ZIP arxiv formatiga mos keladigan va qo'shimcha fayllar qo'shish uchun zip yordam dasturidan foydalanishga imkon beruvchi bitta bajariladigan faylga jamlangan. Bitta faylni turli xil operatsion tizimlarda ishga tushirish va uni ZIP arxivi sifatida tan olish qobiliyatiga bajariladigan fayl sarlavhalarini boshqarish va Cosmopolitan ko'p platformali standart C kutubxonasi bilan bog'lanish orqali erishiladi. Loyiha kodi ISC litsenziyasi ostida tarqatiladi.

Loyihaning g'oyasi bitta bajariladigan "redbean.com" faylini o'rnatilgan veb-server bilan ta'minlashdir. Veb-ilova ishlab chiqaruvchisi ushbu faylga HTML va Lua fayllarini qo'shish uchun zip yordam dasturidan foydalanishi va barcha mashhur operatsion tizimlarda ishlaydigan va tizimda ishlashi uchun alohida veb-serverni talab qilmaydigan mustaqil veb-ilovani olishi mumkin.

Olingan bajariladigan faylni ishga tushirgandan so'ng, o'rnatilgan veb-server faylda saqlangan veb-ilovaga kirish uchun ishlatiladi. Odatiy bo'lib, ishlov beruvchi localhost-ga biriktirilgan, ammo server oddiy umumiy veb-server sifatida ham ishlatilishi mumkin (masalan, bu server loyiha veb-saytiga xizmat qiladi). O'rnatilgan veb-server HTTPS-ga kirishni qo'llab-quvvatlaydi va qaysi tizim interfeyslariga kirishni boshqarish imkonini beruvchi sandbox izolyatsiyasi yordamida bajarilishi mumkin. Serverning bajarilishi davomida uning ishlashini nazorat qilish uchun interaktiv REPL interfeysi taqdim etiladi (Lua REPL va bestline kutubxonasi, GNU Readline analogi asosida), bu jarayonning holatini interaktiv tarzda o'zgartirish imkonini beradi.

Ta'kidlanishicha, veb-server gzip-siqilgan kontentga xizmat ko'rsatuvchi oddiy shaxsiy kompyuterda soniyasiga milliondan ortiq so'rovlarni qayta ishlashga qodir. Ishlashda yordam beradigan narsa shundaki, zip va gzip umumiy formatdan foydalanadi, shuning uchun ma'lumotlar zip faylidagi allaqachon siqilgan joylardan qayta o'rnatilmasdan taqdim etiladi. Bunga qo'shimcha ravishda, bajariladigan fayl statik bog'lanish yordamida yaratilganligi va o'lchami kichik bo'lganligi sababli, undagi chaqiruv vilkalari xotiraga juda kam sarflanadi yoki umuman yo'q.

Statik veb-kontentni qayta ishlash va brauzerda JavaScript-ni bajarishdan tashqari, veb-ilova mantig'ini Lua, Fullmoon veb-ramka va SQLite DBMS skriptlari yordamida kengaytirish mumkin. Qo'shimcha funktsiyalar qatoriga argon2 parolini xeshlash sxemasini qo'llab-quvvatlash, MaxMind ma'lumotlar bazasidan foydalangan holda IP mintaqasini aniqlash qobiliyati va Cosmopolitan kutubxonasining Unix API-ga kirish kiradi. Veb-server, MbedTLS, Cosmopolitan, Lua va SQLite-ni o'z ichiga olgan asosiy stekning hajmi bor-yo'g'i 1.9 MB.

Universal bajariladigan fayl turli xil operatsion tizimlarga (PE, ELF, MACHO, OPENBSD, ZIP) xos segmentlar va sarlavhalarni bir faylda birlashtirish orqali hosil bo'ladi. Bitta bajariladigan fayl Windows va Unix tizimlarida ishlashini ta'minlash uchun Thompson Shell "#!" skript belgisini ishlatmasligidan foydalanib, Windows PE fayllarini qobiq skripti sifatida kodlash hiyla-nayrangdir. Natijada Linux, BSD, Windows va macOS-da ishlatiladigan bir nechta turli formatlarni birlashtirgan bajariladigan fayl. $ 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) tinglang http://127.0.0.1:8080 >: buyruq kutilmoqda… $ curl https://127.0.0.1:8080/salom .html salom $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 salom



Manba: opennet.ru

a Izoh qo'shish