Redbean 2.0 платформаи барномаҳои вебест, ки дар бойгонии универсалии ZIP иҷрошаванда баста шудаанд

Нашри лоиҳаи Redbean 2.0 муаррифӣ мешавад, ки он веб-сервереро пешниҳод мекунад, ки ба шумо имкон медиҳад барномаҳои вебро дар шакли файли универсалии иҷрошаванда, ки дар Linux, Windows, MacOS, FreeBSD, NetBSD ва OpenBSD иҷро кардан мумкин аст, пешкаш мекунад. Ҳамаи захираҳои марбут ба веб-барнома ва сервер ба як файли иҷрошаванда ҷамъ оварда мешаванд, ки бо формати бойгонии ZIP мувофиқ аст ва ба шумо имкон медиҳад, ки утилитаи zip-ро барои илова кардани файлҳои иловагӣ истифода баред. Қобилияти иҷро кардани як файл дар OS-ҳои гуногун ва эътироф кардани он ҳамчун бойгонии ZIP тавассути коркарди сарлавҳаҳои файлҳои иҷрошаванда ва пайвастшавӣ бо китобхонаи стандартии C бисёрплатформаи Cosmopolitan ба даст оварда мешавад. Рамзи лоиҳа тибқи иҷозатномаи ISC паҳн карда мешавад.

Идеяи лоиҳа таъмин намудани як файли иҷрошавандаи “redbean.com” бо веб-сервери дарунсохт мебошад. Таҳиягари замимаи веб метавонад аз утилитаи zip барои илова кардани файлҳои HTML ва Lua ба ин файл истифода барад ва веб-барномаи мустақилро ба даст орад, ки дар ҳама системаҳои оператсионии маъмул кор мекунад ва барои кор дар система сервери алоҳидаи вебро талаб намекунад.

Пас аз оғози файли иҷрошавандаи натиҷавӣ, веб-сервери дарунсохт барои дастрасӣ ба веб-барномаи дар файл захирашуда истифода мешавад. Бо нобаёнӣ, коркардкунанда ба localhost замима карда мешавад, аммо сервер инчунин метавонад ҳамчун веб-сервери маъмулии ҷамъиятӣ истифода шавад (масалан, ин сервер ба вебсайти лоиҳа хидмат мекунад). Веб-сервери дарунсохт дастрасии HTTPS-ро дастгирӣ мекунад ва онро бо истифода аз изолятсияи қуттии қум иҷро кардан мумкин аст, ки ба шумо имкон медиҳад, ки ба кадом интерфейсҳои система дастрасӣ пайдо кунед. Барои назорати кори сервер ҳангоми иҷрои он интерфейси интерактивии REPL таъмин карда мешавад (дар асоси Lua REPL ва китобхонаи беҳтарин, аналоги GNU Readline), ки имкон медиҳад ҳолати раванд ба таври интерактивӣ тағир дода шавад.

Гуфта мешавад, ки веб-сервер қодир аст беш аз як миллион дархостро дар як сония дар як компютери муқаррарӣ коркард кунад ва мундариҷаи бо gzip фишурдашударо пешкаш кунад. Он чизе, ки ба иҷроиш кӯмак мекунад, ин аст, ки zip ва gzip формати умумиро истифода мебаранд, аз ин рӯ маълумот бидуни аз нав боркунӣ аз минтақаҳои аллакай фишурдашуда дар файли zip интиқол дода мешавад. Илова бар ин, азбаски файли иҷрошаванда бо истифода аз пайванди статикӣ сохта мешавад ва андозаи хурд аст, занги форк дар он миқдори ками хотираро ба вуҷуд меорад.

Илова ба коркарди мундариҷаи статикии веб ва иҷрои JavaScript дар браузер, мантиқи барномаи вебро метавон бо истифода аз скриптҳо дар Lua, чаҳорчӯбаи веби Fullmoon ва DBMS SQLite васеъ кард. Хусусиятҳои иловагӣ дастгирии нақшаи ҳашингии парол argon2, қобилияти муайян кардани минтақаи IP бо истифода аз махзани MaxMind ва дастрасӣ ба Unix API китобхонаи Cosmopolitan мебошанд. Андозаи стеки асосӣ, ки сервери веб, MbedTLS, Cosmopolitan, Lua ва SQLite-ро дар бар мегирад, ҳамагӣ 1.9 МБ аст.

Файли иҷрошавандаи универсалӣ тавассути омезиши сегментҳо ва сарлавҳаҳои ба системаҳои гуногуни оператсионӣ хос (PE, ELF, MACHO, OPENBSD, ZIP) дар як файл ташкил карда мешавад. Барои таъмини он, ки як файли иҷрошаванда дар системаҳои Windows ва Unix кор мекунад, ҳиллаест, ки файлҳои Windows PE-ро ҳамчун скрипти ниҳонӣ рамзгузорӣ карда, бо истифода аз он, ки Thompson Shell аломати скрипти "#!"-ро истифода намебарад. Дар натиҷа як файли иҷрошаванда аст, ки якчанд форматҳои гуногунро, ки дар 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 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 салом



Манбаъ: opennet.ru

Илова Эзоҳ