Redbean 2.0 minangka platform kanggo aplikasi web sing dikemas ing arsip ZIP sing bisa dieksekusi universal

Rilis proyek Redbean 2.0 ditampilake, nawakake server web sing ngidini sampeyan ngirim aplikasi web ing wangun file eksekusi universal sing bisa dieksekusi ing Linux, Windows, MacOS, FreeBSD, NetBSD lan OpenBSD. Kabeh sumber daya sing ana gandhengane karo aplikasi web lan server diklumpukake dadi file eksekusi siji, sing kompatibel karo format arsip ZIP lan ngidini sampeyan nggunakake sarana zip kanggo nambah file tambahan. Kemampuan kanggo mbukak siji file ing OS sing beda-beda lan wis diakoni minangka arsip ZIP digayuh kanthi manipulasi header file eksekusi lan nyambungake karo perpustakaan C standar multi-platform Cosmopolitan. Kode proyek disebarake miturut lisensi ISC.

Gagasan proyek kasebut yaiku nyedhiyakake siji file eksekusi "redbean.com" kanthi server web sing dibangun. Pangembang aplikasi web bisa nggunakake utilitas zip kanggo nambah file HTML lan Lua menyang file iki lan entuk aplikasi web mandiri sing mlaku ing kabeh sistem operasi populer lan ora mbutuhake server web sing kapisah kanggo mbukak ing sistem kasebut.

Sawise mbukak file eksekusi sing diasilake, server web sing dibangun digunakake kanggo ngakses aplikasi web sing disimpen ing file kasebut. Kanthi gawan, panangan dipasang ing localhost, nanging server uga bisa digunakake minangka server web umum biasa (contone, server iki nglayani situs web proyek). Server Web sing dibangun ndhukung akses HTTPS lan bisa dieksekusi nggunakake isolasi kothak wedhi, sing ngidini sampeyan ngontrol antarmuka sistem sing diakses. Kanggo ngontrol operasi server sajrone eksekusi, antarmuka REPL interaktif diwenehake (adhedhasar Lua REPL lan perpustakaan bestline, analog saka GNU Readline), sing ndadekake bisa ngganti kahanan proses kanthi interaktif.

Diklaim manawa server web bisa ngolah luwih saka sejuta panjaluk saben detik ing PC biasa, ngladeni konten sing dikompres gzip. Sing mbantu kinerja yaiku zip lan gzip nggunakake format umum, mula data disedhiyakake tanpa dikemas maneh saka wilayah sing wis dikompres ing file zip. Kajaba iku, amarga eksekusi digawe kanthi nggunakake link statis lan ukurane cilik, garpu nelpon ora ana nduwur sirah memori.

Saliyane ngolah konten web statis lan nglakokake JavaScript ing browser, logika aplikasi web bisa ditambah nganggo skrip ing Lua, kerangka web Fullmoon lan DBMS SQLite. Fitur tambahan kalebu dhukungan kanggo skema hashing sandi argon2, kemampuan kanggo nemtokake wilayah IP nggunakake database MaxMind, lan akses menyang API Unix saka perpustakaan Cosmopolitan. Ukuran tumpukan dhasar, sing kalebu server web, MbedTLS, Cosmopolitan, Lua lan SQLite, mung 1.9 MB.

File eksekusi universal dibentuk kanthi nggabungake segmen lan header khusus kanggo sistem operasi sing beda (PE, ELF, MACHO, OPENBSD, ZIP) ing siji file. Kanggo mesthekake yen file eksekusi siji mlaku ing sistem Windows lan Unix, trick kanggo encode file Windows PE minangka script shell, njupuk kauntungan saka kasunyatan sing Thompson Shell ora nggunakake "#!"script marker. Asil kasebut minangka file eksekusi sing nggabungake pirang-pirang format sing digunakake ing Linux, BSD, Windows lan 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) ngrungokake http://127.0.0.1:8080 >: ngenteni prentah… $ curl https://127.0.0.1:8080/hello .html hello $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 salam



Source: opennet.ru

Add a comment