Redbean 2.0 нь бүх нийтийн гүйцэтгэгдэх ZIP архивт багцлагдсан вэб програмуудын платформ юм

Linux, Windows, MacOS, FreeBSD, NetBSD болон OpenBSD дээр ажиллах боломжтой бүх нийтийн гүйцэтгэгдэх файл хэлбэрээр вэб програмуудыг хүргэх боломжийг олгодог вэб серверийг санал болгож буй Redbean 2.0 төслийн хувилбарыг танилцуулж байна. Вэб програм болон сервертэй холбоотой бүх нөөцийг нэг гүйцэтгэгдэх файл болгон нэгтгэсэн бөгөөд энэ нь ZIP архивын форматтай нийцдэг бөгөөд нэмэлт файл нэмэхийн тулд zip хэрэгслийг ашиглах боломжийг олгодог. Нэг файлыг өөр өөр үйлдлийн систем дээр ажиллуулж, түүнийг ZIP архив гэж хүлээн зөвшөөрөх чадварыг гүйцэтгэх боломжтой файлын толгойг удирдаж, олон платформын стандарт C номын сантай Cosmopolitan-тай холбосноор олж авдаг. Төслийн кодыг ISC лицензийн дагуу түгээдэг.

Төслийн санаа нь "redbean.com" нэг гүйцэтгэгдэх файлыг суурилуулсан вэб серверээр хангах явдал юм. Вэб програм хөгжүүлэгч нь zip хэрэгслийг ашиглан HTML болон Lua файлуудыг энэ файлд нэмж, бүх алдартай үйлдлийн системүүд дээр ажилладаг, систем дээр ажиллахад тусдаа вэб сервер шаарддаггүй бие даасан вэб программ авах боломжтой.

Гүйцэтгэх боломжтой файлыг ажиллуулсны дараа суулгасан вэб сервер нь файлд хадгалагдсан вэб програм руу нэвтрэхэд ашиглагддаг. Анхдагч байдлаар, зохицуулагчийг localhost-д хавсаргасан боловч серверийг энгийн нийтийн вэб сервер болгон ашиглаж болно (жишээлбэл, энэ сервер нь төслийн вэбсайтад үйлчилдэг). Суурилуулсан вэб сервер нь HTTPS хандалтыг дэмждэг бөгөөд хамгаалагдсан хязгаарлагдмал орчны тусгаарлалтыг ашиглан гүйцэтгэх боломжтой бөгөөд энэ нь ямар системийн интерфэйсүүдэд хандахыг хянах боломжийг олгодог. Серверийг гүйцэтгэх явцад түүний ажиллагааг хянахын тулд интерактив REPL интерфэйсийг (Lua REPL болон GNU Readline-ийн аналог шилдэг номын сан дээр үндэслэн) өгдөг бөгөөд энэ нь процессын төлөвийг интерактив байдлаар өөрчлөх боломжийг олгодог.

Энэ вэб сервер нь энгийн компьютер дээр секундэд сая гаруй хүсэлтийг боловсруулах чадвартай бөгөөд gzip-ээр шахсан контентоор үйлчилдэг гэж мэдэгджээ. Гүйцэтгэлд тусалдаг зүйл бол zip болон gzip нь нийтлэг форматыг ашигладаг тул zip файлын аль хэдийн шахсан хэсгүүдээс өгөгдлийг дахин савлахгүйгээр үйлчилдэг. Нэмж дурдахад, гүйцэтгэгдэх файл нь статик холбоосыг ашиглан бүтээгдсэн бөгөөд жижиг хэмжээтэй тул салаа руу залгахад санах ойн ачаалал бага эсвэл огт байхгүй.

Статик вэб контентыг боловсруулж, JavaScript-ийг хөтөч дээр ажиллуулахаас гадна вэб програмын логикийг Lua, Fullmoon вэб хүрээ болон SQLite DBMS-ийн скриптүүдийг ашиглан өргөжүүлж болно. Нэмэлт боломжууд нь argon2 нууц үг хэшлэх схемийг дэмжих, MaxMind мэдээллийн баазыг ашиглан IP бүсийг тодорхойлох чадвар, Cosmopolitan номын сангийн Unix API-д хандах боломжтой. Вэб сервер, MbedTLS, Cosmopolitan, Lua, SQLite зэргийг багтаасан үндсэн стекийн хэмжээ ердөө 1.9 MB байна.

Төрөл бүрийн үйлдлийн системүүд (PE, ELF, MACHO, OPENBSD, ZIP)-д хамаарах сегментүүд болон толгойнуудыг нэг файлд нэгтгэснээр бүх нийтийн гүйцэтгэгдэх файл үүсдэг. Windows болон Unix системүүд дээр нэг гүйцэтгэгдэх боломжтой файлыг ажиллуулахын тулд Томпсон Shell нь "#!" скрипт тэмдэглэгээг ашигладаггүй тул Windows PE файлуудыг бүрхүүлийн скрипт болгон кодлох нь заль мэх юм. Үр дүн нь Linux, BSD, Windows болон 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) сонсох http://127.0.0.1:8080 >: тушаал хүлээж байна… $ curl https://127.0.0.1:8080/hello .html сайн уу $ printf ' /hello.lua\n\n' | nc 127.0.0.1 8080 сайн уу



Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх