Redbean 2.0 jẹ ipilẹ fun awọn ohun elo wẹẹbu ti a ṣajọpọ ni ibi ipamọ ZIP ti o ṣiṣẹ ni gbogbo agbaye

Itusilẹ ti iṣẹ akanṣe Redbean 2.0 ti gbekalẹ, nfunni ni olupin wẹẹbu kan ti o fun ọ laaye lati fi awọn ohun elo wẹẹbu ranṣẹ ni irisi faili ipaniyan gbogbo ti o le ṣe lori Linux, Windows, MacOS, FreeBSD, NetBSD ati OpenBSD. Gbogbo awọn orisun ti o ni nkan ṣe pẹlu ohun elo wẹẹbu ati olupin ni a ṣe akojọpọ sinu faili ṣiṣe kan ṣoṣo, eyiti o ni ibamu pẹlu ọna kika ibi ipamọ ZIP ati gba ọ laaye lati lo ilo zip lati ṣafikun awọn faili afikun. Agbara lati ṣiṣẹ faili kan lori awọn OS oriṣiriṣi ati jẹ ki o mọ bi ibi ipamọ ZIP kan jẹ aṣeyọri nipasẹ ṣiṣakoso awọn akọle faili ti o ṣiṣẹ ati sisopọ pẹlu boṣewa ile-ikawe C ti ọpọlọpọ-Syeed Cosmopolitan. Koodu ise agbese ti pin labẹ iwe-aṣẹ ISC.

Ero ti iṣẹ akanṣe ni lati pese faili ti o le ṣiṣẹ kan “redbean.com” pẹlu olupin wẹẹbu ti a ṣe sinu. Olùgbéejáde ohun elo wẹẹbu le lo ohun elo zip lati ṣafikun HTML ati awọn faili Lua si faili yii ati gba ohun elo wẹẹbu ti o ni ara ẹni ti o nṣiṣẹ lori gbogbo awọn ọna ṣiṣe olokiki ati pe ko nilo olupin wẹẹbu lọtọ lati ṣiṣẹ lori ẹrọ naa.

Lẹhin ifilọlẹ faili ti o le ṣe abajade, olupin wẹẹbu ti a ṣe sinu rẹ ni a lo lati wọle si ohun elo wẹẹbu ti o fipamọ sinu faili naa. Nipa aiyipada, oluṣakoso naa ni asopọ si localhost, ṣugbọn olupin naa tun le ṣee lo bi olupin wẹẹbu gbogbogbo (fun apẹẹrẹ, olupin yii n ṣe iranṣẹ oju opo wẹẹbu iṣẹ akanṣe). Olupin wẹẹbu ti a ṣe sinu ṣe atilẹyin iraye si HTTPS ati pe o le ṣe ni lilo ipinya apoti iyanrin, eyiti o fun ọ laaye lati ṣakoso iru awọn atọkun eto ti o wọle. Lati ṣakoso iṣẹ olupin lakoko ipaniyan rẹ, wiwo REPL ibaraenisepo ti pese (da lori Lua REPL ati ile-ikawe ti o dara julọ, afọwọṣe ti GNU Readline), eyiti o jẹ ki o ṣee ṣe lati yi ipo ilana naa pada ni ibaraenisọrọ.

O ti sọ pe olupin wẹẹbu ni o lagbara lati ṣiṣẹ diẹ sii ju awọn ibeere miliọnu kan fun iṣẹju keji lori PC deede, ti n ṣiṣẹ akoonu fisinuirindigbindigbin gzip. Ohun ti o ṣe iranlọwọ iṣẹ ṣiṣe ni pe zip ati gzip lo ọna kika ti o wọpọ, nitorinaa a ṣe iranṣẹ data laisi ṣiṣatunṣe lati awọn agbegbe fisinuirindigbindigbin tẹlẹ ninu faili zip naa. Ni afikun, niwọn igba ti a ti ṣẹda imuṣiṣẹ nipa lilo ọna asopọ aimi ati pe o kere ni iwọn, pipe orita lori rẹ ṣafihan diẹ si ko si iranti lori oke.

Ni afikun si ṣiṣiṣẹ akoonu oju opo wẹẹbu aimi ati ṣiṣiṣẹ JavaScript ninu ẹrọ aṣawakiri, ọgbọn ohun elo wẹẹbu le faagun ni lilo awọn iwe afọwọkọ ni Lua, ilana wẹẹbu Fullmoon ati SQLite DBMS. Awọn ẹya afikun pẹlu atilẹyin fun ero-ọrọ hashing ọrọ igbaniwọle argon2, agbara lati pinnu agbegbe IP nipa lilo data MaxMind, ati iraye si Unix API ti ile-ikawe Cosmopolitan. Iwọn akopọ ipilẹ, eyiti o pẹlu olupin wẹẹbu kan, MbedTLS, Cosmopolitan, Lua ati SQLite, jẹ 1.9 MB nikan.

Faili ti o le ṣiṣẹ ni gbogbo agbaye ni a ṣẹda nipasẹ apapọ awọn apakan ati awọn akọle ni pato si awọn ọna ṣiṣe oriṣiriṣi (PE, ELF, MACHO, OPENBSD, ZIP) ninu faili kan. Lati rii daju pe faili kan ti o le ṣiṣẹ lori awọn eto Windows ati Unix, ẹtan ni lati ṣe koodu awọn faili Windows PE gẹgẹbi iwe afọwọkọ ikarahun, ni anfani ti otitọ pe Thompson Shell ko lo ami ami afọwọkọ “#!”. Abajade jẹ faili ṣiṣe ti o ṣajọpọ ọpọlọpọ awọn ọna kika oriṣiriṣi ti a lo ni Linux, BSD, Windows ati 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) gbọ http://127.0.0.1:8080 >: nduro fun pipaṣẹ… $ curl https://127.0.0.1:8080/hello .html hello $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 hello



orisun: opennet.ru

Fi ọrọìwòye kun