13 ะผะฐั, ะฟะพัะปะต ะฑะพะปะตะต ะณะพะดะฐ ั€ะฐะทั€ะฐะฑะพั‚ะบะธ, ัะพัั‚ะพัะปัั ะฒั‹ะฟัƒัะบ 7.0.0 ะบั€ะพััะฟะปะฐั‚ั„ะพั€ะผะตะฝะฝะพะน ะฑะธะฑะปะธะพั‚ะตะบะธ FTXUI, เบญเบญเบเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ C ++ เบ—เบตเปˆเบกเบตเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เปเป‰เบ„เบงเบฒเบกเปเบฅเบฐเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT.

เบ„เบธเบ™โ€‹เบ™เบฐโ€‹เบชเบปเบกโ€‹เบšเบฑเบ”โ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ”โ€‹:

  • เปเบšเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”, เบ„เป‰เบฒเบเบ„เบทเบเบฑเบš React JS;
  • เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบก (เบญเบตเบ‡เบ•เบฒเบกเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”);
  • เบˆเบฑเบ”เบเบฒเบ™เป€เบซเบ”เบเบฒเบ™เปเบ›เป‰เบ™เบžเบดเบก เปเบฅเบฐเป€เบกเบปเบฒเบชเปŒ;
  • เบฎเบญเบ‡เบฎเบฑเบš UTF8 เปเบฅเบฐ Unicode;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเบตเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฎเบนเบšเปเบšเบšเบ•เบปเบงเบเบฐเบžเบดเบš;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบฒเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เปเบ•เป‰เบกเบฎเบนเบš;
  • เบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก;
  • เบ‚เป‰เบฒเบกเปเบžเบฅเบ”เบŸเบญเบก (Linux/MacOS, เป€เบงเบฑเบšเปเบญเบชเป€เบŠเบกเบšเบฅเบต, Windows).
เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡

ะ”ะพะบัƒะผะตะฝั‚ะฐั†ะธั

  • ะ˜ัะฟั€ะฐะฒะปะตะฝะฐ ะณะตะฝะตั€ะฐั†ะธั ะดะพะบัƒะผะตะฝั‚ะฐั†ะธะธ ั Doxygen.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ัะพะฑัั‚ะฒะตะฝะฝะฐั ั‚ะตะผะฐ ะดะปั Doxygen.
  • ะ ะฐะทะดะตะปะตะฝะธะต ะดะพะบัƒะผะตะฝั‚ะฐั†ะธะธ ะฝะฐ ะฝะตัะบะพะปัŒะบะพ ัั‚ั€ะฐะฝะธั†.

เบเบฒเบ™เบฅเบงเบšเบฅเบงเบก

  • ะ”ะพะฑะฐะฒะปะตะฝ ัะบั€ะธะฟั‚ tools$ amalgamate.py ะดะปั ะณะตะฝะตั€ะฐั†ะธะธ ยซะฐะผะฐะปัŒะณะฐะผะธั€ะพะฒะฐะฝะฝะพะณะพยป ะธัั…ะพะดะฝะพะณะพ ะบะพะดะฐ: ftxui.cpp (534 Kะฑ), ftxui.hpp (110 ะšะฑ) ะธ ftxui_all.hpp (643 ะšะฑ).
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะผะพะดัƒะปะตะน C++20.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ Meson.
  • ะฃะดะฐะปะตะฝะฐ ะทะฐะฒะธัะธะผะพัั‚ัŒ ะพั‚ pthread.
  • ะ˜ัะฟั€ะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ Bazel.
  • ะ”ั€ัƒะณะธะต ัƒะปัƒั‡ัˆะตะฝะธั.

ะ˜ะทะผะตะฝะตะฝะธั ัะพะฒะผะตัั‚ะธะผะพัั‚ะธ ั ะฟั€ะพัˆะปั‹ะผะธ ะฒะตั€ัะธัะผะธ

  • ะŸะตั€ะตะธะผะตะฝะพะฒั‹ะฒะฐะฝะธั:
    • Pixel ะฒ `Cell
    • Image ะฒ Surface
    • ScreenInteractive ะฒ App
    • ะผะตั‚ะพะด PixelAt ะฒCellAt
      ะ”ะปั ะพะฑะตัะฟะตั‡ะตะฝะธั ัะพะฒะผะตัั‚ะธะผะพัั‚ะธ ะฟั€ะตะดัƒัะผะพั‚ั€ะตะฝั‹ ะฟัะตะฒะดะพะฝะธะผั‹ ะธ ะทะฐะณะพะปะพะฒะบะธ, ั‡ั‚ะพะฑั‹ ะฝะต ะฝะฐั€ัƒัˆะธั‚ัŒ ั€ะฐะฑะพั‚ัƒ ััƒั‰ะตัั‚ะฒัƒัŽั‰ะตะณะพ ะบะพะดะฐ.
  • ะ˜ัะฟะพะปัŒะทะพะฒะฐะฝะธะต std::string_view ะฒะผะตัั‚ะพ const std::string& ั‚ะฐะผ, ะณะดะต ัั‚ะพ ะฒะพะทะผะพะถะฝะพ. ะญั‚ะพ ะพะฑะตัะฟะตั‡ะธะฒะฐะตั‚ ะปัƒั‡ัˆัƒัŽ ัะพะฒะผะตัั‚ะธะผะพัั‚ัŒ ัะพ ัั‚ั€ะพะบะพะฒั‹ะผะธ ะปะธั‚ะตั€ะฐะปะฐะผะธ ะธ ะฟะพะทะฒะพะปัะตั‚ ะธะทะฑะตะถะฐั‚ัŒ ะฝะตะฝัƒะถะฝั‹ั… ะบะพะฟะธั€ะพะฒะฐะฝะธะน.

Components

  • ะฃะปัƒั‡ัˆะตะฝะฐ ะธ ะผะพะดะตั€ะฝะธะทะธั€ะพะฒะฐะฝะฐ ัะธัั‚ะตะผะฐ ะฟะตั€ะตั…ะฒะฐั‚ะฐ ัะธะณะฝะฐะปะพะฒ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ POSIX sigaction ะดะปั ะฝะฐะดะตะถะฝะพะณะพ ะผะฐัะบะธั€ะพะฒะฐะฝะธั ัะธะณะฝะฐะปะพะฒ. ะžะฑะตัะฟะตั‡ะตะฝะฐ ะทะฐั‰ะธั‚ะฐ ะพั‚ ะดะฒะพะนะฝะพะณะพ ะฒะพััั‚ะฐะฝะพะฒะปะตะฝะธั ั‚ะตั€ะผะธะฝะฐะปะฐ ะฟั€ะธ ะฒั‹ั…ะพะดะต ะธะท ะฟั€ะพะณั€ะฐะผะผั‹ ั ะฟะพะผะพั‰ัŒัŽ ะฐั‚ะพะผะฐั€ะฝะพะณะพ ะพั‚ัะปะตะถะธะฒะฐะฝะธั ะธัั…ะพะดะฝะพะณะพ ัะพัั‚ะพัะฝะธั. ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะดะพะฟะพะปะฝะธั‚ะตะปัŒะฝั‹ั… ัะธะณะฝะฐะปะพะฒ POSIX (SIGBUS, SIGSYS, ะบะฐะบ ัะธะณะฝะฐะปะพะฒ ัะฑะพั, ะธ SIGQUIT, SIGHUP, ะบะฐะบ ัะธะณะฝะฐะปะพะฒ ะพั‚ะปะพะถะตะฝะฝะพะณะพ ะทะฐะฒะตั€ัˆะตะฝะธั) ะธ ะธัะฟั€ะฐะฒะปะตะฝั‹ ะฟั€ะพะฑะปะตะผั‹ ะฑะตะทะพะฟะฐัะฝะพัั‚ะธ ะฐัะธะฝั…ั€ะพะฝะฝั‹ั… ัะธะณะฝะฐะปะพะฒ.
  • ะ˜ัะฟั€ะฐะฒะปะตะฝะฐ ะฟั€ะพะฑะปะตะผะฐ ั ะพั‚ะพะฑั€ะฐะถะตะฝะธะตะผ ะบัƒั€ัะพั€ะฐ ะฟั€ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะธ ะฝะฐัั‚ั€ะฐะธะฒะฐะตะผะพะณะพ Renderer ะฒะพ ะฒะปะพะถะตะฝะฝั‹ั… ะบะพะฝั‚ะตะนะฝะตั€ะฐั….
  • ะ˜ัะฟั€ะฐะฒะปะตะฝะพ ะฟะพะทะธั†ะธะพะฝะธั€ะพะฒะฐะฝะธะต ะบัƒั€ัะพั€ะฐ ะฒ ะฟะพะปัั… ะฒะฒะพะดะฐ ะธ ัั‚ะฐะฑะธะปัŒะฝะพัั‚ัŒ ะฟั€ะพะบั€ัƒั‚ะบะธ.
  • ะ˜ัะฟั€ะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะฝะต ASCII ัะธะผะฒะพะปะพะฒ ะฒ ั€ะตะถะธะผะต ะฒะฒะพะดะฐ ะฟะฐั€ะพะปั.
  • ะฃัั‚ั€ะฐะฝะตะฝะพ ะผะตั€ั†ะฐะฝะธะต ะบัƒั€ัะพั€ะฐ ะฟั€ะธ ะฟะตั€ะตั€ะธัะพะฒะบะต ะฒ App.
  • ะžะฑั€ะฐะฑะพั‚ะบะฐ ะฒะฒะพะดะฐ ั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ POSIX pipes
    • ะŸะพะทะฒะพะปัะตั‚ ะฟั€ะธะปะพะถะตะฝะธัะผ FTXUI ัั‡ะธั‚ั‹ะฒะฐั‚ัŒ ะดะฐะฝะฝั‹ะต ะธะท stdin (ะฟั€ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะธ pipe) ะธ ะฟั€ะธ ัั‚ะพะผ ะฟะพ-ะฟั€ะตะถะฝะตะผัƒ ะฟั€ะธะฝะธะผะฐั‚ัŒ ะฒะฒะพะด ั ะบะปะฐะฒะธะฐั‚ัƒั€ั‹ ะฒ ั‚ะตั€ะผะธะฝะฐะปะต.
    • ะ˜ัะฟะพะปัŒะทัƒะตั‚ัั ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ.
    • ะœะพะถะตั‚ ะฑั‹ั‚ัŒ ะพั‚ะบะปัŽั‡ะตะฝะพ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะตะผ App::HandlePipedInput(false).
    • เบกเบตเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™ Linux ะธ macOS.
  • ะ˜ัะฟั€ะฐะฒะปะตะฝั‹ ะผะฝะพะณะธะต ะพัˆะธะฑะบะธ.

DOM

  • ะŸะพะดะดะตั€ะถะบะฐ ะฟะตั€ะตะฒะพะดะฐ ัั‚ั€ะพะบะธ (n) ะฒะฝัƒั‚ั€ะธ text() ะธ vtext().
  • ะขะตะฟะตั€ัŒ dbox ะฟะตั€ะตะดะฐะตั‚ ั„ะพะบัƒั ะพั‚ ะฒะตั€ั…ะฝะธั… ัะปะพะตะฒ ะบ ะฝะธะถะฝะธะผ, ั‡ั‚ะพ ัะพะพั‚ะฒะตั‚ัั‚ะฒัƒะตั‚ ะฒะธะทัƒะฐะปัŒะฝะพะผัƒ ะพั‚ะพะฑั€ะฐะถะตะฝะธัŽ.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ ะดะตะบะพั€ะฐั‚ะพั€ะพะฒ ะณั€ะฐะฝะธั† ั‚ะฐะฑะปะธั†. ะญั‚ะพ ะฟะพะทะฒะพะปัะตั‚, ะฝะฐะฟั€ะธะผะตั€, ะธะทะผะตะฝัั‚ัŒ ั†ะฒะตั‚ ะณั€ะฐะฝะธั† ั‚ะฐะฑะปะธั†ั‹.
  • ะ˜ัะฟั€ะฐะฒะปะตะฝะฐ ะพัˆะธะฑะบะฐ ั†ะตะปะพั‡ะธัะปะตะฝะฝะพะณะพ ะฟะตั€ะตะฟะพะปะฝะตะฝะธั ะฒ ComputeShrinkHard.
  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ัะฟะตั†ะธะฐะปะธะทะฐั†ะธั ะฒ vbox/hbox/dbox ะดะปั ะฒะพะทะผะพะถะฝะพัั‚ะธ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ะบะพะฝั‚ะตะนะฝะตั€ะฐ Element ะฒ ะบะฐั‡ะตัั‚ะฒะต ะฒั…ะพะดะฝั‹ั… ะดะฐะฝะฝั‹ั….
  • ะ’ gridbox ะธัะฟั€ะฐะฒะปะตะฝะพ ะดะพะฑะฐะฒะปะตะฝะธะต ะดะพั‡ะตั€ะฝะธั… ัะปะตะผะตะฝั‚ะพะฒ.
  • ะ˜ัะฟั€ะฐะฒะปะตะฝะพ ะพั‚ะพะฑั€ะฐะถะตะฝะธะต gauge.
  • ะ”ะพะฑะฐะฒะปะตะฝั‹ ะฟะฐั€ะฐะผะตั‚ั€ะธะทะพะฒะฐะฝะฝั‹ะต ะฒะฐั€ะธะฐะฝั‚ั‹ ะดะตะบะพั€ะฐั‚ะพั€ะพะฒ flex ั ะฟะฐั€ะฐะผะตั‚ั€ะพะผ _factor. ะžะฝะธ ะฟะพะทะฒะพะปััŽั‚ ัƒะบะฐะทั‹ะฒะฐั‚ัŒ ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัŒัะบะธะต ะบะพัั„ั„ะธั†ะธะตะฝั‚ั‹ ั€ะฐัั‚ัะถะตะฝะธั ะธะปะธ ัะถะฐั‚ะธั:
    flex_factor(grow, shrink), flex_grow_factor(grow), flex_shrink_factor(shrink), ะฐ ั‚ะฐะบะถะต ะฒะฐั€ะธะฐะฝั‚ั‹ ะดะปั ะพัะตะน x ะธ y.

ะžะฟั‚ะธะผะธะทะฐั†ะธะธ ะพั‚ั€ะธัะพะฒะบะธ

  • ะžะฟั‚ะธะผะธะทะฐั†ะธั ะฟะตั€ะตะผะตั‰ะตะฝะธั ะบัƒั€ัะพั€ะฐ ะฟะพ ัั‚ั€ะพะบะฐะผ ะฒ ะผะตั‚ะพะดะต Screen::ResetPosition (ะฑะตะท ะพั‡ะธัั‚ะบะธ ัะบั€ะฐะฝะฐ) ะฒ ะพะดะธะฝ ะฟะฐั€ะฐะผะตั‚ั€ะธะทะพะฒะฐะฝะฝั‹ะน ะฝะฐะฑะพั€ ะบะพะผะฐะฝะด CSI ะดะปั ะฟะตั€ะตะผะตั‰ะตะฝะธั ะบัƒั€ัะพั€ะฐ ะฒะฒะตั€ั… (x1B[<n>A) ะฒะผะตัั‚ะพ ะฒั‹ะฒะพะดะฐ ะพะดะฝะพะณะพ x1B[1A ะฝะฐ ะบะฐะถะดัƒัŽ ัั‚ั€ะพะบัƒ. ะญั‚ะพ ัƒะผะตะฝัŒัˆะธะปะพ ะบะพะปะธั‡ะตัั‚ะฒะพ ัะบั€ะฐะฝะธั€ัƒัŽั‰ะธั… ัะธะผะฒะพะปะพะฒ ะฝะฐ ะบะฐะดั€ ะฒะพ ะฒั€ะตะผั ะฟะตั€ะตั€ะธัะพะฒะบะธ (ะฝะฐะฟั€ะธะผะตั€, ~197 -> 6 ะฑะฐะนั‚ะพะฒ ะดะปั ัะบั€ะฐะฝะฐ ั 50 ัั‚ั€ะพะบะฐะผะธ, ~33-ะบั€ะฐั‚ะฝะพะต ัƒะผะตะฝัŒัˆะตะฝะธะต).
  • ะžะฟั‚ะธะผะธะทะธั€ะพะฒะฐะฝั‹ Screen::ToString(), Color::Print() ะธ string_width(), ั‡ั‚ะพ ัƒัะบะพั€ะธะปะพ:
    • ะ‘ะฐะทะพะฒั‹ะน ั€ะตะฝะดะตั€ะธะฝะณ ะฝะฐ ~27%.
    • ะ ะตะฝะดะตั€ะธะฝะณ ั‚ะตะบัั‚ะฐ ะฝะฐ ~27%.
    • ะ ะตะฝะดะตั€ะธะฝะณ ัั‚ะธะปะตะน ะฝะฐ ~38%.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster