Mae Redbean 2.0 yn blatfform ar gyfer cymwysiadau gwe sydd wedi'u pecynnu mewn archif ZIP gweithredadwy cyffredinol

Cyflwynir rhyddhau'r prosiect Redbean 2.0, gan gynnig gweinydd gwe sy'n eich galluogi i gyflwyno cymwysiadau gwe ar ffurf ffeil gweithredadwy gyffredinol y gellir ei gweithredu ar Linux, Windows, MacOS, FreeBSD, NetBSD ac OpenBSD. Mae'r holl adnoddau sy'n gysylltiedig Γ’'r rhaglen we a'r gweinydd yn cael eu crynhoi mewn un ffeil weithredadwy, sy'n gydnaws Γ’ fformat archif ZIP ac sy'n caniatΓ‘u ichi ddefnyddio'r cyfleustodau zip i ychwanegu ffeiliau ychwanegol. Cyflawnir y gallu i redeg un ffeil ar wahanol OSes a'i chydnabod fel archif ZIP trwy drin penawdau ffeiliau gweithredadwy a chysylltu Γ’'r llyfrgell aml-lwyfan safonol C Cosmopolitan. Mae cod y prosiect yn cael ei ddosbarthu o dan drwydded ISC.

Syniad y prosiect yw cyflenwi un ffeil gweithredadwy β€œredbean.com” gyda gweinydd gwe adeiledig. Gall datblygwr cymhwysiad gwe ddefnyddio'r cyfleustodau sip i ychwanegu ffeiliau HTML a Lua i'r ffeil hon a chael cymhwysiad gwe hunangynhwysol sy'n rhedeg ar bob system weithredu boblogaidd ac nad oes angen gweinydd gwe ar wahΓ’n arno i redeg ar y system.

Ar Γ΄l lansio'r ffeil gweithredadwy sy'n deillio o hynny, defnyddir y gweinydd gwe adeiledig i gael mynediad i'r cymhwysiad gwe sydd wedi'i gadw yn y ffeil. Yn ddiofyn, mae'r triniwr ynghlwm wrth localhost, ond gellir defnyddio'r gweinydd hefyd fel gweinydd gwe cyhoeddus rheolaidd (er enghraifft, mae'r gweinydd hwn yn gwasanaethu gwefan y prosiect). Mae'r gweinydd Gwe adeiledig yn cefnogi mynediad HTTPS a gellir ei weithredu gan ddefnyddio ynysu blwch tywod, sy'n eich galluogi i reoli pa ryngwynebau system y ceir mynediad iddynt. Er mwyn rheoli gweithrediad y gweinydd yn ystod ei weithrediad, darperir rhyngwyneb REPL rhyngweithiol (yn seiliedig ar y Lua REPL a'r llyfrgell orau, analog o GNU Readline), sy'n ei gwneud hi'n bosibl newid cyflwr y broses yn rhyngweithiol.

Honnir bod y gweinydd gwe yn gallu prosesu mwy na miliwn o geisiadau yr eiliad ar gyfrifiadur personol arferol, gan wasanaethu cynnwys cywasgedig gzip. Yr hyn sy'n helpu perfformiad yw bod zip a gzip yn defnyddio fformat cyffredin, felly mae data'n cael ei weini heb gael ei ail-bacio o ardaloedd sydd eisoes wedi'u cywasgu yn y ffeil zip. Yn ogystal, gan fod y gweithredadwy yn cael ei greu gan ddefnyddio cyswllt statig a'i fod yn fach o ran maint, nid yw galw fforc arno yn cyflwyno fawr ddim cof uwchben.

Yn ogystal Γ’ phrosesu cynnwys gwe sefydlog a gweithredu JavaScript yn y porwr, gellir ehangu'r rhesymeg cymhwysiad gwe gan ddefnyddio sgriptiau yn Lua, fframwaith gwe Fullmoon a'r SQLite DBMS. Mae nodweddion ychwanegol yn cynnwys cefnogaeth ar gyfer cynllun stwnsio cyfrinair argon2, y gallu i bennu'r rhanbarth IP gan ddefnyddio cronfa ddata MaxMind, a mynediad i API Unix y llyfrgell Cosmopolitan. Dim ond 1.9 MB yw maint y pentwr sylfaenol, sy'n cynnwys gweinydd gwe, MBedTLS, Cosmopolitan, Lua a SQLite.

Mae ffeil gweithredadwy gyffredinol yn cael ei ffurfio trwy gyfuno segmentau a phenawdau sy'n benodol i wahanol systemau gweithredu (PE, ELF, MACHO, OPENBSD, ZIP) mewn un ffeil. Er mwyn sicrhau bod un ffeil gweithredadwy yn rhedeg ar systemau Windows ac Unix, tric yw amgodio ffeiliau Windows PE fel sgript cragen, gan fanteisio ar y ffaith nad yw Thompson Shell yn defnyddio'r marciwr sgript β€œ#!”. Y canlyniad yw ffeil gweithredadwy sy'n cyfuno sawl fformat gwahanol a ddefnyddir yn Linux, BSD, Windows a 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) gwrando http://127.0.0.1:8080 >: aros am orchymyn… $curl https://127.0.0.1:8080/hello .html helo $printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 helo



Ffynhonnell: opennet.ru

Ychwanegu sylw