ИзлСзС notcurses v1.4.1 β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ тСкстови интСрфСйси


ИзлСзС notcurses v1.4.1 β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ тСкстови интСрфСйси

ИзлСзС Π½ΠΎΠ²Π° вСрсия Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° notcurses v1.4.x «сагата ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°! wu-tang! wu-tang!Β»

Notcurses Π΅ TUI Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π·Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½ΠΈ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ. Π‘ΡƒΠΊΠ²Π°Π»Π½ΠΎ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½ΠΎ – Π½Π΅ проклятия (not curses). Написана Π΅ Π½Π° C, с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° бСзопасни C++ заглавия. Π”ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ са ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° Rust, C++ ΠΈ Python.

Какво Π΅ Ρ‚ΠΎΠ²Π°: Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, улСсняваща слоТни TUI Π½Π° ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½ΠΈ Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, максимално ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰Π° ярки Ρ†Π²Π΅Ρ‚ΠΎΠ²Π΅ ΠΈ Unicode. Много Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄Π΅Π»Π΅Π³ΠΈΡ€Π°Π½ΠΈ Π½Π° curses, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ изпълнСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° notcurses (ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ).

Какво Π½Π΅ Π΅ Ρ‚ΠΎΠ²Π°: ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° рСализация Π½Π° X/Open curses ΠΈΠ»ΠΈ замяна Π½Π° ncurses Π² ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈΡ‚Π΅ систСми.

Notcurses сС ΠΎΡ‚ΠΊΠ°Π·Π²Π° ΠΎΡ‚ API X/Open Curses, прСдоставяно ΠΊΠ°Ρ‚ΠΎ част ΠΎΡ‚ Single UNIX Specification. Π’Π°Π·ΠΈ спСцификация Π΅ остаряла ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ‚Π°ΠΊΠ°Π²Π° функционалност Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°, ΠΊΠ°Ρ‚ΠΎ нСиндСксиран 24-Π±ΠΈΡ‚ΠΎΠ² цвят. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π°, notcurses Π½Π΅ Π΅ замяна Π½Π° curses. Вя Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π΅ тСствана Π½Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅.
ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΅ възмоТно, notcurses ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° terminfo, прСдоставСна Π·Π°Π΅Π΄Π½ΠΎ с ncurses, ΠΈΠ·Π²Π»ΠΈΡ‡Π°ΠΉΠΊΠΈ голяма ΠΏΠΎΠ»Π·Π° ΠΎΡ‚ Π½Π΅ΠΉΠ½Π°Ρ‚Π° прСносимост.
Notcurses отваря Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° взаимодСйствиС с ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ станции, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ΠΈ, Π»Π°ΠΏΡ‚ΠΎΠΏΠΈ ΠΈ Ρ‚Π°Π±Π»Π΅Ρ‚ΠΈ.

Π—Π°Ρ‰ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Π°Π·ΠΈ нСстандартна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°?

  • ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚Ρ‚Π° ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ ΠΎΡ‚ самото Π½Π°Ρ‡Π°Π»ΠΎ бяха ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΠΎ ΡΡŠΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

  • По-ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ΠΎ API Π² сравнСниС с X/Open:

    • ЕкспортируСмитС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ ΠΈΠΌΠ°Ρ‚ прСфикс, Π·Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ Π² пространствата Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π°.

    • ΠžΠ±Π΅ΠΊΡ‚Π½ΠΈΡΡ‚ Ρ„Π°ΠΉΠ» Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Скспортира ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ символи. ΠšΡŠΠ΄Π΅Ρ‚ΠΎ Π΅ Ρ†Π΅Π»Π΅ΡΡŠΠΎΠ±Ρ€Π°Π·Π½ΠΎ, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° статичСн ΠΊΠΎΠ΄ само Π·Π° строчни заглавия. Π’ΠΎΠ²Π° улСснява оптимизацията Π½Π° компилятора ΠΈ намалява Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅.

  • Всички API ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ унивСрсалСн Π½Π°Π±ΠΎΡ€ символи (Unicode). API Π·Π° ΠΊΠ»Π΅Ρ‚ΠΊΠΈ Π΅ основан Π½Π° концСпцията Π Π°Π·ΡˆΠΈΡ€Π΅Π½ кластСр Π½Π° Π³Ρ€Π°Ρ„Π΅ΠΌΠΈ Π½Π° Unicode.

  • Π’ΠΈΠ·ΡƒΠ°Π»Π½ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ изобраТСния, ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ²Π΅, Π²ΠΈΠ΄Π΅ΠΎ, висококонтрастСн тСкст, спрайтовС ΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΈ области. Всички API ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ 24-Π±ΠΈΡ‚Π΅Π½ цвят, ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π°Π½ ΠΏΡ€ΠΈ нСобходимост Π·Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°.

  • ЛицСнзия Apache2, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Π΄Ρ€Π°ΠΌΠ° Π² няколко дСйствия, която Π΅ лицСнзията Π½Π° ncurses (послСдната сС ΠΎΠ±ΠΎΠ±Ρ‰Π°Π²Π° ΠΊΠ°Ρ‚ΠΎ Β«ΠΏΡ€Π΅Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° MIT-X11Β»).

ΠžΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ 1.1.0 бяха Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎ количСство Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Основни ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π£ΠΈΠ΄ΠΆΠ΅Ρ‚ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π·Π° въвСТданС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Π½ΠΈΠ·ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅

  • Π£ΠΈΠ΄ΠΆΠ΅Ρ‚ subprocess Π·Π° създаванС Π½Π° подпроцСси, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° тях ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

  • Π’ Linux 5.3+ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½ΠΎΠ² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ clone3+pidfd Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° процСси Π±Π΅Π· race condition.

  • Π£ΠΈΠ΄ΠΆΠ΅Ρ‚ Fdplane Π·Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² дСскриптор Π½Π° плоскост (Π²ΡŠΡ€Ρ…Ρƒ която Π΅ създадСн ΠΏΠΎΠ΄ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚). И Π΄Π²Π°Ρ‚Π° позволяват Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ повиквания Π΄Π° стилизират ΠΈΠ»ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ тСкст.

  • Π’ΡŠΡ€Ρ‚Π΅Π½Π΅ Π½Π° плоскости ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»Π½ΠΈ Π΅Ρ„Π΅ΠΊΡ‚ΠΈ. Π—Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΎ Π±Π»ΠΈΡ‚ΠΈΡ€Π°Π½Π΅ RGBA/BGRx.

  • ΠœΠ΅Π½ΡŽΡ‚Π°Ρ‚Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π½Π° която ΠΈ Π΄Π° Π΅ (ΠΈΠ»ΠΈ Π½Π° Π΄Π²Π΅Ρ‚Π΅) ΠΎΡ‚ Π³ΠΎΡ€Π½ΠΈΡ‚Π΅ ΠΈ Π΄ΠΎΠ»Π½ΠΈΡ‚Π΅ плоскости.

  • Π“ΠΎΠ»Π΅ΠΌΠΈ подобрСния Π² Ρ€Π΅ΠΆΠΈΠΌΠ° Direct.

  • Polyfills, Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ високо контрастСн тСкст.

  • Π”ΠΎΠ±Π°Π²Π΅Π½ тСтрис ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

  • C++ ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ ΠΎΡ‚ Marek Habersack ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π΄Π° Ρ…Π²ΡŠΡ€Π»ΡΡ‚ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ).

  • Python ΠΈ Rust FFI бяха ΠΎΠ±Π½ΠΎΠ²Π΅Π½ΠΈ ΠΈ тСствани.

Π’ΠΈΠ΄Π΅ΠΎ дСмонстрация с ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ Π½Π° Π°Π²Ρ‚ΠΎΡ€Π°
ΠšΠ½ΠΈΠ³Π°Ρ‚Π° 'Hacking The Planet! with Notcurses' ΠΎΡ‚ Π°Π²Ρ‚ΠΎΡ€Π°

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster