libunicode 0.7.0

Состоялся выпуск 0.7.0 библиотеки для языка C++ (стандарт C++20) libunicode. Проект разрабатывается командой эмулятора терминала Contour и распространяется по лицензии Apache 2.0.
Возможности библиотеки:
поддержка стандартов Юникод:
- API для получения свойств Юникод;
- SIMD-оптимизация некоторых функций (с использованием
std::simdилиstd::experimental::simdпри их наличии); - оптимизированное конвертирование UTF8 <-> UTF32;
- эквивалент функции
wcwidth(int unicode::width(char32_t)); - сегментирование текста по графемам, символам, эмодзи и письменностям;
- покрытие тестами большинства возможностей библиотеки (ширина символа и сегментирование);
- высокоуровневый API сегментирования текста, подходящий для реализации шейпинга текста.
В комплект поставки также входит консольная утилита unicode-query для получения подробной информации о строках.
Список изменений:
- Unicode 17.0;
- использование инструкций AVX при их доступности;
- использование инструкций SIMD по умолчанию только на x86_64 и aarch64;
- улучшено отображение эмодзи утилитой
unicode-query; - улучшена поддержка CMake;
- изменён базовый каталог вывода (
buildнаout) CMake для соответствия связанным проектам.
>>> Подробности на GitHub
