Redbean 2.0 waa madal loogu talagalay arjiyada shabakadda oo lagu baakadeeyay kaydka ZIP ee caalamiga ah ee la fulin karo

Siideynta mashruuca Redbean 2.0 ayaa la soo bandhigay, iyada oo bixisa server-ka shabakadda kaas oo kuu ogolaanaya inaad gudbiso codsiyada webka qaab faylka la fulin karo ee caalamiga ah kaas oo lagu fulin karo Linux, Windows, MacOS, FreeBSD, NetBSD iyo OpenBSD. Dhammaan agabyada la xidhiidha arjiga shabakadda iyo server-ka waxa lagu ururiyey hal fayl oo la fulin karo, kaas oo la jaan qaadaya qaabka kaydka ZIP oo kuu ogolaanaya inaad isticmaasho utility-ga sibka si aad ugu darto faylal dheeraad ah. Awoodda lagu socodsiiyo hal fayl OS-yo kala duwan iyo in loo aqoonsado kaydka ZIP waxa lagu gaaraa iyada oo la adeegsanayo maamulayaasha faylka la fulin karo iyo in lagu xidho halbeegga maktabadda C ee Cosmopolitan. Xeerka mashruuca waxa lagu qaybiyaa shatiga ISC.

Fikradda mashruucu waa in la keeno hal fayl oo la fulin karo "redbean.com" oo leh shabakad shabakad ku dhex dhisan. Sameeyaha arjiga webka wuxuu isticmaali karaa utility-ga sibka si uu ugu daro faylalka HTML iyo Lua ee faylkan oo uu helo arji isku xiran oo ka shaqeeya dhamaan nidaamyada hawlgalka ee caanka ah oo aan u baahnayn shabakad gaar ah si uu ugu shaqeeyo nidaamka.

Ka dib markii la bilaabo faylka la fulin karo ee ka soo baxay, server-ka ku dhex jira ayaa loo isticmaalaa si loo galo codsiga shabakada ee lagu kaydiyay faylka. Sida caadiga ah, maamuluhu wuxuu ku xiran yahay localhost, laakiin server-ka waxaa sidoo kale loo isticmaali karaa sidii shabakad dadweyne oo caadi ah (tusaale ahaan, server-kani wuxuu u adeegaa shabakada mashruuca). Serfarka Shabakadda ee ku dhex jira waxa uu taageeraa gelitaanka HTTPS waxaana lagu fulin karaa iyada oo la isticmaalayo go'doonsan sanduuqa-sanduuqa, kaas oo kuu ogolaanaya inaad xakamayso nidaamka is-dhexgalka ee la galo. Si loo xakameeyo hawlgalka server-ka inta lagu jiro fulinta, interface REPL is-dhexgal ah ayaa la bixiyaa (ku salaysan Lua REPL iyo maktabadda ugu fiican, analooga GNU Readline), taas oo suurtogal ka dhigaysa in la beddelo xaaladda habka isdhexgalka.

Waxaa la sheegaa in server-ku uu awood u leeyahay in uu ka baaraandego in ka badan milyan codsi ilbiriqsi kasta kombayutarka caadiga ah, isaga oo u adeegaya nuxurka gzip-ku-buufiska ah. Maxaa caawiya waxqabadka waa in zip iyo gzip ay isticmaalaan qaab caadi ah, sidaas darteed xogta waxaa loo adeegaa iyada oo aan dib loo soo celin meelaha horeba loo cufay ee faylka sibka. Intaa waxaa dheer, maadaama la fulin karo la abuuray iyada oo la adeegsanayo isku xirka joogtada ah oo uu yar yahay cabbirkiisa, fargeeto ku yeerida waxay soo bandhigaysaa wax yar ama wax xusuus ah oo ka sarreeya.

Marka lagu daro socodsiinta macluumaadka mareegaha taagan iyo fulinta JavaScript ee browserka, caqliga codsiga webka waxa lagu kordhin karaa iyadoo la isticmaalayo qoraalada Lua, qaabka webka Fullmoon iyo SQLite DBMS. Sifooyin dheeri ah waxaa ka mid ah taageerada nidaamka hashing password-ka argon2, awoodda lagu go'aamin karo gobolka IP-ga iyadoo la adeegsanayo xogta MaxMind, iyo gelitaanka Unix API ee maktabadda Cosmopolitan. Baaxadda xirmada aasaasiga ah, oo ay ku jiraan server-ka shabakadda, MbedTLS, Cosmopolitan, Lua iyo SQLite, waa 1.9 MB oo keliya.

Fayl caalami ah oo la fulin karo ayaa la sameeyay iyadoo la isku darayo qaybo iyo madax gaar ah nidaamyada hawlgalka ee kala duwan (PE, ELF, MACHO, OPENBSD, ZIP) hal fayl. Si loo hubiyo in hal fayl oo la fulin karo uu ku socdo nidaamyada Windows iyo Unix, khiyaano ayaa ah in lagu dhejiyo faylasha Windows PE sidii qoraal qolof ah, iyadoo laga faa'iidaysanayo xaqiiqda ah in Thompson Shell aanu isticmaalin "#!" Natiijadu waa fayl la fulin karo oo isku dara dhowr qaabab oo kala duwan oo loo isticmaalo Linux, BSD, Windows iyo 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) dhageyso http://127.0.0.1:8080 >: sugitaanka amarka… $ curl https://127.0.0.1:8080/hello .html hello $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 hello



Source: opennet.ru

Add a comment