17 февраля состоялся выпуск 0.8.0 библиотеки для языка C++ (стандарт C++20) [ libunicode ](
https://github.com/contour-terminal/libunicode ) . Проект разрабатывается командой разработчиков эмулятора терминала [ Contour ](
https://contour-terminal.org ) и распространяется по лицензии Apache 2.0.
[ Возможности библиотеки ](
https://github.com/contour-terminal/libunicode?tab=readme-ov-file#feature-overview ) :
• поддержка стандартов [ Unicode 17.0 ](
https://www.linux.org.ru/news/opensource/18056080 ) :
• [ UAX #11 East Asian Width ](
https://unicode.org/reports/tr11 ) ,
• [ UAX #24 Unicode Script Property ](
https://unicode.org/reports/tr24 ) ,
• [ UAX #29 Unicode Text Segmentation ](
https://unicode.org/reports/tr29 ) ,
• [ UTS #51 Unicode Emoji ](
https://unicode.org/reports/tr51 ) ;
• API для получения свойств Юникод;
• SIMD-оптимизация некоторых функций (с использованием std::simd или std::experimental::simd при их наличии);
• оптимизированное конвертирование UTF8 UTF32;
• эквивалент функции wcwidth (int unicode::width(char32_t));
• сегментирование текста по графемам, символам, эмодзи и письменностям;
• преобразование регистра и сравнение строк;
• высокоуровневый API сегментирования текста, подходящий для реализации шейпинга текста.
• покрытие тестами большинства возможностей библиотеки (ширина символа и сегментирование).
В комплект поставки также входит консольная утилита unicode-query для получения подробной информации о строках.
( [ читать дальше... ](
https://www.linux.org.ru/news/development/18223509#cut ) )