Redbean 2.0 Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π·Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ спакувани Π²ΠΎ ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° ZIP Π°Ρ€Ρ…ΠΈΠ²Π°

ΠŸΡ€Π΅Π·Π΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Redbean 2.0, кој Π½ΡƒΠ΄ΠΈ Π²Π΅Π±-сСрвСр кој Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° испорачатС Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° ΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠΈ Π½Π° Linux, Windows, MacOS, FreeBSD, NetBSD ΠΈ OpenBSD. Π‘ΠΈΡ‚Π΅ рСсурси ΠΏΠΎΠ²Ρ€Π·Π°Π½ΠΈ со Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΈ сСрвСрот сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π°Ρ‚ Π²ΠΎ Π΅Π΄Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, која Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½Π° со Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΡ‚ Π½Π° Π°Ρ€Ρ…ΠΈΠ²Π°Ρ‚Π° ZIP ΠΈ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ја користитС Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° zip Π·Π° додавањС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ. Бпособноста Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠΈ Π΅Π΄Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ систСми ΠΈ Π΄Π° сС ΠΏΡ€Π΅ΠΏΠΎΠ·Π½Π°Π΅ ΠΊΠ°ΠΊΠΎ ZIP Π°Ρ€Ρ…ΠΈΠ²Π° сС постигнува со ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°ΡšΠ΅ со Π·Π°Π³Π»Π°Π²ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½ΠΈΡ‚Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ со мултиплатформската стандардна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° C Cosmopolitan. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΈΠΎΡ‚ ΠΊΠΎΠ΄ сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° ISC.

Π˜Π΄Π΅Ρ˜Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π΅ Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ Π΅Π΄Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° β€žredbean.comβ€œ со Π²Π³Ρ€Π°Π΄Π΅Π½ Π²Π΅Π±-сСрвСр. Π Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ја користи Π°Π»Π°Ρ‚ΠΊΠ°Ρ‚Π° zip Π·Π° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ HTML ΠΈ Lua-Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΎ ΠΎΠ²Π°Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° ΠΈ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡ˜Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° ситС ΠΏΠΎΠΏΡƒΠ»Π°Ρ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ систСми ΠΈ Π½Π΅ Π±Π°Ρ€Π° посСбСн Π²Π΅Π±-сСрвСр Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° систСмот.

По ΡΡ‚Π°Ρ€Ρ‚ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠ±ΠΈΠ΅Π½Π°Ρ‚Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°, Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ Π²Π΅Π±-сСрвСр сС користи Π·Π° пристап Π΄ΠΎ Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π·Π°Ρ‡ΡƒΠ²Π°Π½Π° Π²ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Π΄Π½ΠΎ, ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ‡ΠΎΡ‚ Π΅ ΠΏΡ€ΠΈΠΊΠ°Ρ‡Π΅Π½ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΠΎΡ‚ хост, Π½ΠΎ сСрвСрот ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи ΠΈ ΠΊΠ°ΠΊΠΎ ΠΎΠ±ΠΈΡ‡Π΅Π½ јавСн Π²Π΅Π±-сСрвСр (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, овој сСрвСр ја опслуТува Π²Π΅Π±-Π»ΠΎΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚). Π’Π³Ρ€Π°Π΄Π΅Π½ΠΈΠΎΡ‚ Π²Π΅Π±-сСрвСр ΠΏΠΎΠ΄Π΄Ρ€ΠΆΡƒΠ²Π° HTTPS пристап ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠΈ со ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΈΠ·ΠΎΠ»Π°Ρ†ΠΈΡ˜Π° Π½Π° sandbox, ΡˆΡ‚ΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ Π΄ΠΎ ΠΊΠΎΠΈ систСмски ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ сС пристапува. Π—Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° сСрвСрот Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΎΡ‚ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅, ΠΎΠ±Π΅Π·Π±Π΅Π΄Π΅Π½ Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ REPL ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ (Π²Ρ€Π· основа Π½Π° Lua REPL ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° bestline, Π°Π½Π°Π»ΠΎΠ³ Π½Π° GNU Readline), ΡˆΡ‚ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΌΠ΅Π½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΡΠΎΡΡ‚ΠΎΡ˜Π±Π°Ρ‚Π° Π½Π° процСсот.

Π‘Π΅ Ρ‚Π²Ρ€Π΄ΠΈ Π΄Π΅ΠΊΠ° Π²Π΅Π±-сСрвСрот Π΅ способСн Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΡƒΠ²Π° повСќС ΠΎΠ΄ ΠΌΠΈΠ»ΠΈΠΎΠ½ Π±Π°Ρ€Π°ΡšΠ° Π²ΠΎ сСкунда Π½Π° ΠΎΠ±ΠΈΡ‡Π΅Π½ ΠΊΠΎΠΌΠΏΡ˜ΡƒΡ‚Π΅Ρ€, ΠΎΠΏΡΠ»ΡƒΠΆΡƒΠ²Π°Ρ˜ΡœΠΈ содрТина компрСсирана со gzip. Она ΡˆΡ‚ΠΎ ΠΈΠΌ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° пСрформанситС Π΅ Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ zip ΠΈ gzip користат Π·Π°Π΅Π΄Π½ΠΈΡ‡ΠΊΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈΡ‚Π΅ сС сСрвираат Π±Π΅Π· ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° сС ΠΏΠ°ΠΊΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ вСќС компрСсирани области Π²ΠΎ zip-Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, бидСјќи ΠΈΠ·Π²Ρ€ΡˆΠ½Π°Ρ‚Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Π΅ ΠΊΡ€Π΅ΠΈΡ€Π°Π½Π° со помош Π½Π° статичко ΠΏΠΎΠ²Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ ΠΈ Π΅ ΠΌΠ°Π»Π° ΠΏΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°, ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Π²ΠΈΠ»ΡƒΡˆΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π° ΠΌΠ°Π»ΠΊΡƒ ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°.

ΠŸΠΎΠΊΡ€Π°Ρ˜ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° статична Π²Π΅Π±-содрТина ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ JavaScript Π²ΠΎ прСлистувачот, Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π²Π΅Π±-Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈ со помош Π½Π° скрипти Π²ΠΎ Lua, Π²Π΅Π±-Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Fullmoon ΠΈ SQLite DBMS. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° ΡˆΠ΅ΠΌΠ°Ρ‚Π° Π·Π° Ρ…Π°ΡˆΠΈΡ€Π°ΡšΠ΅ Π½Π° Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°Ρ‚Π° argon2, моТност Π·Π° ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ Π½Π° IP Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΡ‚ со помош Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ MaxMind ΠΈ пристап Π΄ΠΎ Unix API Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Cosmopolitan. Π“ΠΎΠ»Π΅ΠΌΠΈΠ½Π°Ρ‚Π° Π½Π° основниот стСк, кој Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Π²Π΅Π±-сСрвСр, MbedTLS, Cosmopolitan, Lua ΠΈ SQLite, Π΅ само 1.9 MB.

Π£Π½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° сС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π° со ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΡšΠ΅ Π½Π° сСгмСнти ΠΈ заглавија спСцифични Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΈ систСми (PE, ELF, MACHO, OPENBSD, ZIP) Π²ΠΎ Π΅Π΄Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°. Π—Π° Π΄Π° сС осигура Π΄Π΅ΠΊΠ° Π΅Π΄Π½Π° ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π½Π° систСмитС Windows ΠΈ Unix, Ρ‚Ρ€ΠΈΠΊ Π΅ Π΄Π° сС ΠΊΠΎΠ΄ΠΈΡ€Π°Π°Ρ‚ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π½Π° Windows PE ΠΊΠ°ΠΊΠΎ скрипта Π½Π° школка, ΠΈΡΠΊΠΎΡ€ΠΈΡΡ‚ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΎ Ρ„Π°ΠΊΡ‚ΠΎΡ‚ ΡˆΡ‚ΠΎ Thompson Shell Π½Π΅ Π³ΠΎ користи ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΡ‚ Π·Π° скрипта β€ž#!β€œ. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π΅ ΠΈΠ·Π²Ρ€ΡˆΠ½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° која ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Π½Π΅ΠΊΠΎΠ»ΠΊΡƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ ΡˆΡ‚ΠΎ сС користат Π²ΠΎ Linux, BSD, Windows ΠΈ 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) ΡΠ»ΡƒΡˆΠ°Ρ˜ http://127.0.0.1:8080 >: Ρ‡Π΅ΠΊΠ°ΡšΠ΅ команда… $ curl https://127.0.0.1:8080/Π·Π΄Ρ€Π°Π²ΠΎ .html Π·Π΄Ρ€Π°Π²ΠΎ $ printf 'GET /hello.lua\n\n' | nc 127.0.0.1 8080 Π·Π΄Ρ€Π°Π²ΠΎ



Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€