Redbean 2.0 mangrupikeun platform pikeun aplikasi wéb anu dibungkus dina arsip ZIP anu tiasa dieksekusi universal

Pelepasan proyék Redbean 2.0 dibere, nawiskeun pangladén wéb anu ngamungkinkeun anjeun nganteurkeun aplikasi wéb dina bentuk file laksana universal anu tiasa dieksekusi dina Linux, Windows, MacOS, FreeBSD, NetBSD sareng OpenBSD. Sadaya sumber daya anu aya hubunganana sareng aplikasi wéb sareng server disusun kana hiji file anu tiasa dieksekusi, anu cocog sareng format arsip ZIP sareng ngamungkinkeun anjeun ngagunakeun utilitas pos pikeun nambihan file tambahan. Kamampuhan pikeun ngajalankeun hiji file dina OS anu béda sareng diakui salaku arsip ZIP dihontal ku ngamanipulasi header file anu tiasa dieksekusi sareng ngahubungkeun sareng perpustakaan C standar multi-platform Cosmopolitan. Kodeu proyék disebarkeun dina lisénsi ISC.

Gagasan proyék nyaéta nyayogikeun hiji file anu tiasa dieksekusi "redbean.com" sareng server wéb anu diwangun. Pamekar aplikasi wéb tiasa nganggo utilitas pos pikeun nambihan file HTML sareng Lua kana file ieu sareng kéngingkeun aplikasi wéb mandiri anu dijalankeun dina sadaya sistem operasi anu populér sareng henteu ngabutuhkeun pangladén wéb anu misah pikeun ngajalankeun sistem.

Saatos ngaluncurkeun file anu tiasa dieksekusi, pangladén wéb anu diwangun dianggo pikeun ngaksés aplikasi wéb anu disimpen dina file. Sacara standar, pawang digantelkeun ka localhost, tapi pangladén ogé tiasa dianggo salaku pangladén wéb umum (contona, pangladén ieu ngalayanan halaman wéb proyék). Pangladén Wéb anu diwangun ngadukung aksés HTTPS sareng tiasa dieksekusi nganggo isolasi sandbox, anu ngamungkinkeun anjeun ngadalikeun antarmuka sistem mana anu diakses. Pikeun ngadalikeun operasi server salila palaksanaan na, hiji panganteur REPL interaktif disadiakeun (dumasar kana Lua REPL jeung perpustakaan bestline, analog tina GNU Readline), nu ngamungkinkeun pikeun ngarobah kaayaan prosés interaktif.

Diklaim yén pangladén wéb sanggup ngolah langkung ti sajuta pamundut per detik dina PC biasa, ngalayanan kontén anu dikomprés gzip. Anu ngabantosan kinerja nyaéta zip sareng gzip nganggo format anu umum, ku kituna data dilayanan tanpa dibungkus deui tina daérah anu parantos dikomprés dina file pos. Salaku tambahan, saprak executable dijieun maké linking statik sarta ukuranana leutik, nelepon garpu dina eta ngenalkeun saeutik mun euweuh overhead memori.

Salian ngolah eusi wéb statik sareng ngaéksekusi JavaScript dina browser, logika aplikasi wéb tiasa dilegakeun nganggo skrip dina Lua, kerangka wéb Fullmoon sareng DBMS SQLite. Fitur tambahan kalebet dukungan pikeun skéma hashing sandi argon2, kamampuan pikeun nangtukeun daérah IP nganggo pangkalan data MaxMind, sareng aksés kana API Unix tina perpustakaan Cosmopolitan. Ukuran tumpukan dasar, nu ngawengku hiji web server, MbedTLS, Cosmopolitan, Lua na SQLite, ngan 1.9 MB.

File laksana universal dibentuk ku ngagabungkeun bagéan sareng lulugu khusus pikeun sistem operasi anu béda (PE, ELF, MACHO, OPENBSD, ZIP) dina hiji file. Pikeun mastikeun yén hiji file executable dijalankeun dina sistem Windows jeung Unix, hiji trik na encode file Windows PE salaku skrip cangkang, ngamangpaatkeun kanyataan yén Thompson Shell henteu ngagunakeun "#!" spidol Aksara. Hasilna mangrupikeun file anu tiasa dieksekusi anu ngagabungkeun sababaraha format anu béda anu dianggo dina Linux, BSD, Windows sareng 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) dengekeun http://127.0.0.1:8080 >: nungguan paréntah… $ curl https://127.0.0.1:8080/hello .html halo $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 halo



sumber: opennet.ru

Tambahkeun komentar