Redbean 2.0 universal icra edilə bilən ZIP arxivində paketlənmiş veb proqramlar üçün platformadır

Linux, Windows, MacOS, FreeBSD, NetBSD və OpenBSD-də icra oluna bilən universal icra olunan fayl şəklində veb proqramları çatdırmağa imkan verən veb server təklif edən Redbean 2.0 layihəsinin buraxılışı təqdim olunur. Veb tətbiqi və server ilə əlaqəli bütün resurslar ZIP arxiv formatına uyğun gələn və əlavə fayllar əlavə etmək üçün zip yardım proqramından istifadə etməyə imkan verən bir icra edilə bilən fayla yığılır. Fərqli əməliyyat sistemlərində bir faylı işlətmək və onu ZIP arxivi kimi tanımaq imkanı icra edilə bilən fayl başlıqlarını manipulyasiya etməklə və çox platformalı standart C kitabxanası Cosmopolitan ilə əlaqələndirməklə əldə edilir. Layihə kodu ISC lisenziyası əsasında paylanır.

Layihənin ideyası bir icra edilə bilən fayl “redbean.com”u daxili veb serverlə təmin etməkdir. Veb proqram tərtibatçısı bu fayla HTML və Lua faylları əlavə etmək və bütün populyar əməliyyat sistemlərində işləyən və sistemdə işləmək üçün ayrıca veb server tələb etməyən müstəqil veb proqram əldə etmək üçün zip yardım proqramından istifadə edə bilər.

Nəticədə icra olunan faylı işə saldıqdan sonra daxili veb server faylda saxlanılan veb proqrama daxil olmaq üçün istifadə olunur. Varsayılan olaraq, işləyici localhost-a əlavə olunur, lakin server adi ictimai veb server kimi də istifadə edilə bilər (məsələn, bu server layihə veb-saytına xidmət edir). Daxili Veb server HTTPS girişini dəstəkləyir və hansı sistem interfeyslərinə daxil olunduğunu idarə etməyə imkan verən sandbox izolyasiyasından istifadə etməklə icra edilə bilər. Onun icrası zamanı serverin işinə nəzarət etmək üçün interaktiv REPL interfeysi (Lua REPL və GNU Readline analoqu olan bestline kitabxanası əsasında) təmin edilir ki, bu da prosesin vəziyyətini interaktiv şəkildə dəyişməyə imkan verir.

İddia edilir ki, veb-server adi kompüterdə saniyədə bir milyondan çox sorğunu emal edə bilir, gzip-də sıxılmış məzmuna xidmət edir. Performansa kömək edən odur ki, zip və gzip ümumi formatdan istifadə edir, beləliklə, məlumatlar zip faylında artıq sıxılmış sahələrdən yenidən qablaşdırılmadan təqdim edilir. Bundan əlavə, icra olunan fayl statik əlaqələndirmə ilə yaradıldığından və kiçik ölçüdə olduğundan, onun üzərində çəngəlin çağırılması çox az yaddaş yükü təqdim edir.

Statik veb məzmunun işlənməsi və brauzerdə JavaScript-in icrasına əlavə olaraq, veb tətbiqi məntiqi Lua, Fullmoon veb çərçivəsi və SQLite DBMS-dəki skriptlərdən istifadə edərək genişləndirilə bilər. Əlavə xüsusiyyətlərə argon2 parol hashing sxemi üçün dəstək, MaxMind verilənlər bazasından istifadə edərək İP bölgəsini təyin etmək imkanı və Cosmopolitan kitabxanasının Unix API-yə giriş daxildir. Veb server, MbedTLS, Cosmopolitan, Lua və SQLite daxil olan əsas yığının ölçüsü cəmi 1.9 MB-dır.

Universal icra edilə bilən fayl müxtəlif əməliyyat sistemlərinə (PE, ELF, MACHO, OPENBSD, ZIP) xas olan seqmentləri və başlıqları bir faylda birləşdirərək formalaşdırılır. Tək icra olunan faylın Windows və Unix sistemlərində işləməsini təmin etmək üçün bir hiylə, Thompson Shell-in “#!” skript markerindən istifadə etməməsindən istifadə edərək, Windows PE fayllarını qabıq skripti kimi kodlaşdırmaqdır. Nəticə Linux, BSD, Windows və macOS-da istifadə olunan bir neçə fərqli formatı birləşdirən icra edilə bilən fayldır. $ 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) dinləyin http://127.0.0.1:8080 >: əmr gözləyir… $ curl https://127.0.0.1:8080/hello .html salam $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 salam



Mənbə: opennet.ru

Добавить комментарий