LINUX.ORG.RU

C++


365

17

Всего сообщений: 251

FARS 1.0.0 Beta

Группа Open Source

После более года разработки, 32-го марта, состоялся выпуск 1.0.0 Beta кроссплатформенного, многопоточного, SIMD-оптимизированного менеджера файлов FARS.

Особенности:

  • Для работы требуется любой эмулятор терминала с поддержкой форматов Sixel, Kitty Graphics Protocol или iTerm2.
  • Желательно, чтобы ЭТ поддерживал Kitty Keyboard Protocol, тогда станет доступно большее количество сочетаний клавиш.
  • Парсинг ESC-последовательностей ЭТ осуществляется библиотекой Lug 0.5.0.
  • Для пользовательского интерфейса используется мой значительно переписанный форк FTXUI 6.0.0 и 6.0.1) с бэкендом constixel.hpp для отрисовки в ЭТ.
  • Так как интерфейс уже не текстовый, я назвал эту концепцию SUI – Sixel User Interface (хотя constixel.hpp поддерживает все три формата).
  • Для быстрой работы с ФС используется библиотека llfio, вызывающая syscall напрямую.
  • Встроенный редактор на основе Lexilla и Scintilla (на базе редактора turbo).
  • Конфигурация хранится в формате TOML, так что Glaze 7.2.0 подошла идеально.

Код проекта написан на C++ (стандарт C++23) и распространяется по лицензии WTFPL.

Просьба сообщать обо всех найденных ошибках!

>>> Подробности

 , , , sui,

dataman
()

Утверждён стандарт C++26

Группа Разработка

Комитет ISO по стандартизации языка C++ утвердил финальный вариант спецификации, образующей международный стандарт «C++26». Представленные в спецификации возможности частично уже поддерживаются в компиляторах GCC (gnu.org), Clang и Microsoft Visual C++. Поддерживающие C++26 стандартные библиотеки реализованы в рамках проекта Boost.

В следующие два месяца утверждённая спецификация будет находиться на стадии подготовки документа к публикации, на которой будет проведена работа по редакторской правке орфографических ошибок и опечаток. В начале ноября результирующий вариант документа будет направлен в ISO для публикации под формальным именем ISO/IEC 14882:2026.

( читать дальше... )

>>> Источник: OpenNET

 ,

dataman
()

cpp-peglib 1.10.0 и 1.10.1

Группа Разработка

12-го и 14-го марта, после длительного затишья, состоялись выпуски 1.10.0 и 1.10.1 библиотеки cpp-peglib, реализующей PEG (грамматику, разбирающую выражение).

Библиотека поддерживает синтаксис, подробно описанный Брайаном Фордом на странице 2 документа «Parsing Expression Grammars: A Recognition-Based Syntactic Foundation», со многими дополнительными улучшениями.

В отличие от таких проектов, как PEGTL, Lexy и многих других, cpp-peglib позволяет задать выражение PEG и во время выполнения.

( читать дальше... )

>>> Попробовать онлайн (пример грамматики JSON на скриншоте)

>>> Подробности на GitHub

 , cpp-peglib, , ,

dataman
()

smath 1.0.0 — библиотека линейной алгебры для языка C++ (стандарт C++23)

Группа Разработка

Состоялся выпуск 1.0.0 библиотеки линейной алгебры для языка C++ (стандарт C++23) smath, распространяемой по лицензии Apache 2.0 в виде единственного небольшого заголовочного файла.

Возможности библиотеки:

  • дженерик-класс Vec<N, T> с полезными алиасами Vec2/Vec3/Vec4 и аксессорами (x/y/z/w, r/g/b/a). Векторы поддерживают приблизительное сравнение и кортежные/структурированные привязки;
  • тип Quaternion<T> на основе Vec4;
  • дженерик-класс Mat с полезными алиасами Mat2/Mat3/Mat4;
  • вспомогательные функции для углов rad/deg/turns с учётом настраиваемой базовой единицы измерения макросом SMATH_ANGLE_UNIT.
  • поддержка cвиззлинга во время компиляции (swizzle<"...">);
  • поддержка std::format;
  • опциональные неявные преобразования;
  • вспомогательные функции упаковки нормализованного RGBA (pack_unorm4x8, unpack_snorm4x8 и др.);
  • поддержка модулей C++20;
  • также предоставляются дополнительные адаптеры взаимодействия с библиотеками Eigen, GLM (OpenGL Mathematics), Handmade-Math, raylib и SFML.

>>> GitHub

 , ,

dataman
()

Glaze 7.2.0

Группа Разработка

Состоялся выпуск 7.2.0 высокопроизводительной, SIMD-оптимизированной и многопоточной библиотеки Glaze, предназначенной для быстрой сериализации и десериализации данных с поддержкой форматов JSON RFC 8259, CSV, CBOR, BEVE, MessagePack, TOML, EETF (Erlang External Term Format) (опционально, для компиляции требуются библиотеки Erlang), YAML 1.2, Stencil и Mustache.

Библиотека написана на языке C++ (header-only, стандарт C++23 и выше) и распространяется по лицензии MIT.

Glaze также предоставляет поддержку REPE RPC и сервер и клиент HTTP, используя современные возможности C++, включая автоматическую генерацию REST API, поддержку WebSocket и шифрование SSL/TLS.

( читать дальше... )

>>> Подробности на GitHub

 , , , ,

dataman
()

GoldenDict-ng 26.3.0

Группа Open Source

26 февраля состоялся выпуск 26.3.0 кроссплатформенного мультиформатного электронного словаря GoldenDict-ng – форка словаря GoldenDict.

Возможности словаря:

  • Поддержка локальных словарей в форматах: MDict, StarDict, ABBYY Lingvo DSL и .lsa/.dat, XDXF, Zim, Aard и Aard 2 (Slob), DictD, Epwing, SDictionary, Babylon и Babylon glossary builder, файлов со звуками в директориях и объединённых в архив zip.
  • Поддержка сетевых источников: Wikipedia и Wiktionary, протокол DICT, LinguaLibre и Forvo, любые сайты, поддерживающие поиск слов, заданных в адресной строке.
  • Поддержка других источников: из других приложений, текст-в-речь, словари морфологии, транслитерация.
  • Поиск сразу по нескольким источникам.
  • Полнотекстовый поиск в локальных словарях с использованием библиотеки Xapian.
  • Интеграция с Anki.
  • И многое другое.

Словарь написан на языке C++ с использованием фреймворка Qt 6 и распространяется по лицензии GNU GPL 3.

( читать дальше... )

>>> Подробности на GitHub

 , , , ,

dataman
()

Shotcut 26.1 и 26.2 BETA

Группа Мультимедиа

30 января состоялся выпуск 26.1 кроссплатформенного видеоредактора Shotcut с поддержкой большого количества аудио- и видеоформатов благодаря использованию библиотек FFmpeg.

Проект написан на языке С++ с использованием фреймворков MLT (mltframework.org) и Qt, и распространяется по лицензии GPL 3.0.

( читать дальше... )

>>> Список изменений версии 26.2 BETA на GitHub – там же можно скачать сборки в различных форматах.

>>> Список изменений версии 26.1 на shotcut.org

 , , , , нелинейный видеомонтаж

dataman
()

libunicode 0.8.0

Группа Разработка

17 февраля состоялся выпуск 0.8.0 библиотеки для языка C++ (стандарт C++20) libunicode. Проект разрабатывается командой разработчиков эмулятора терминала Contour и распространяется по лицензии Apache 2.0.

Возможности библиотеки:

  • поддержка стандартов Unicode 17.0:
  • API для получения свойств Юникод;
  • SIMD-оптимизация некоторых функций (с использованием std::simd или std::experimental::simd при их наличии);
  • оптимизированное конвертирование UTF8 <-> UTF32;
  • эквивалент функции wcwidth (int unicode::width(char32_t));
  • сегментирование текста по графемам, символам, эмодзи и письменностям;
  • преобразование регистра и сравнение строк;
  • высокоуровневый API сегментирования текста, подходящий для реализации шейпинга текста.
  • покрытие тестами большинства возможностей библиотеки (ширина символа и сегментирование).

В комплект поставки также входит консольная утилита unicode-query для получения подробной информации о строках.

( читать дальше... )

>>> Подробности на GitHub

 , , ,

dataman
()

7-Zip 26.00

Группа Open Source

12 февраля, после полугода разработки, состоялся выпуск 26.00 библиотеки и консольной утилиты 7-Zip, предназначенных для работы с архивами в формате 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM и многих других.

Проект написан на языках C и C++ и распространяется по лицензии GNU LGPL.

Список изменений:

  • улучшен код для ZIP, CPIO, RAR, UFD, QCOW и Compound;
  • исправлена ошибка извлечения из архивов TAR, содержащих разрежённые файлы;
  • в 7-Zip File Manager улучшена сортировка списка файлов с использованием имени файла как второго ключа сортировки;
  • в 7-Zip File Manager улучшен тест производительности для систем с более чем 64-мя потоками CPU;
  • исправлены некоторые ошибки.

>>> Подробности на GitHub

 , , , ,

dataman
()

FocusWriter 1.9.0

Группа Open Source

Состоялся выпуск 1.9.0 FocusWriter — простого текстового процессора без отвлекающего внимание интерфейса, который становится доступен при перемещении «мыши» к краям экрана.

FocusWriter позволяет настраивать рабочую среду, создавая темы с настройками шрифта, цвета и фонового изображения. Он также предлагает оперативное обновление статистики, ежедневные цели, возможность открывать несколько документов, проверку орфографии и многое другое.

При открытии программы ваша текущая работа автоматически загрузится и откроется на том месте, где вы остановились, чтобы вы могли сразу же вернуться к ней.

Поддерживаются форматы OpenDocument, XML, Office Open XML, Rich Text Format и TXT.

( читать дальше... )

>>> Подробности на GitHub

 , , focuswriter, ,

dataman
()

TGUI 1.12

Группа Разработка

26 января состоялся релиз 1.12 кроссплатформенной библиотеки виджетов TGUI, написанной на языке C++ и распространяемой по лицензии Zlib.

Минимальная версия стандарта — C++14. Для компиляторов GCC >= 11, Clang >= 16 и IntelLLVM по умолчанию используется стандарт C++17.

Библиотека поддерживает несколько бэкендов ввода-вывода (параметр CMake TGUI_BACKEND):

  • SFML_GRAPHICS – sfml-graphics
  • SFML_OPENGL3 – sfml-window + OpenGL + FreeType
  • SDL_GPU – SDL + SDL_ttf
  • SDL_RENDERER – SDL + SDL_ttf
  • SDL_OPENGL3 – SDL + OpenGL + FreeType
  • SDL_GLES2 – SDL + OpenGL ES + FreeType
  • SDL_TTF_OPENGL3 – SDL + OpenGL + SDL_ttf
  • SDL_TTF_GLES2 – SDL + OpenGL ES + SDL_ttf
  • GLFW_OPENGL3 – GLFW + OpenGL + FreeType
  • GLFW_GLES2 – GLFW + OpenGL ES + FreeType
  • RAYLIB – raylib

В комплект поставки также входит простой дизайнер GUI.

( читать дальше... )

>>> Подробности на tgui.eu

 , , , ,

dataman
()

libzim 9.5.0

Группа Open Source

Состоялся выпуск 9.5.0 библиотеки libzim, предназначенной для работы с файлами в формате ZIM (openzim.org). Разработка библиотеки ведётся и спонсируется проектом Kiwix.

ZIM — формат, предназначенный для офлайн-хранения информации, полученной из Интернета, в виде одного файла. В ZIM-файле в сжатом виде находятся логически связанные между собой HTML-страницы (а иногда и образы сайтов целиком) с работающими гиперссылками, изображениями, звуком и видео.

Проектом Kiwix разрабатывается набор консольных утилит zim-tools, десктопный и мобильные клиенты, и скрипты для создания файлов ZIM из дампов проектов Wikimedia или из HTML.

Также libzim используется в форке словаря GoldenDict – GoldenDict-NG.

Краткий список возможностей библиотеки:

  • создание файлов ZIM cо сжатием данных в формате Zstandard (ранее также поддерживались форматы ZIP, LZMA и Bzip2);
  • поиск по названиям статей;
  • опциональная поддержка Xapian для полнотекстового поиска. Множество файлов ZIM можно скачать здесь.

( читать дальше... )

>>> Подробности на GitHub

 , , , ,

dataman
()

ThorVG 1.0

Группа Разработка

31 января, после полутора лет непрерывной разработки, состоялся выпуск 1.0 лёгкой и портативной кроссплатформенной библиотеки векторной графики ThorVG, предназначенной для визуализации векторных сцен и анимаций. Поддерживается загрузка файлов в форматах Lottie и SVG Tiny 1.2 (список реализованных возможностей SVG Tiny в Wiki проекта).

Библиотекой предоставляются удобные API для импорта, создания и отображения векторной графики, а также для её экспорта в различные графические форматы, что делает её универсальной для использования в различных программных платформах и приложениях для визуализации графического контента. Также поставляются консольные утилиты lottie2gif и svg2png.

ThorVG используется для рендеринга векторной графики в таких проектах, как Tizen OS, Godot Engine, LVGL и плеерах dotLottie.

( читать дальше... )

>>> Подробности на thorvg.org

 , , , ,

dataman
()

plocate 1.1.24

plocate 1.1.24
Группа Open Source

13 января, после более годового перерыва, состоялся выпуск 1.1.24 набора консольных утилит plocate для поиска файлов, полностью заменяющих locate(1) гораздо более быстрым и компактным индексом.

plocate работает путём создания инвертированного индекса из триграмм (комбинаций из трёх байтов) поисковых строк, что позволяет быстро сузить набор кандидатов до очень небольшого списка, вместо линейного сканирования каждой записи. Утилита выполняет почти все операции ввода-вывода асинхронно, используя API io_uring, если он доступен (Linux 5.1+), что снижает влияние задержки поиска в системах без SSD. Как и mlocate и slocate, возвращаемый набор файлов зависит от прав пользователя, то есть, пользователь увидит файл только в том случае, если find(1) его отображает (все каталоги из корня имеют права +rx).

( читать дальше... )

>>> Список изменений в файле NEWS архива

 , , plocate, ,

dataman
()

DJV 3.3.3

Группа Мультимедиа

9 января состоялся выпуск 3.3.3 DJV (grizzlypeak3d.github.io) – кроссплатформенной (Linux, macOS и Windows) программы с открытым исходным кодом для воспроизведения и анализа файлов мультимедиа. DJV может воспроизводить последовательности изображений высокого разрешения и фильмы в режиме реального времени с аудио, сравнением A/B, управлением цветом и другими функциями.

Возможности программы:

  • поддержка изображений с высоким разрешением и высокой битовой глубиной;
  • сравнение A/B с режимами стирания, наложения и разницы (на втором скриншоте);
  • поддержка временной шкалы с помощью библиотеки OpenTimelineIO;
  • управление цветом с помощью библиотеки OpenColorIO (OCIO);
  • многодорожечное аудио с переменной скоростью и обратным воспроизведением;
  • экспериментальная поддержка файлов в формате USD (openusd.org).

( читать дальше... )

>>> Подробности на GitHub

 , djv, , ,

dataman
()

simdutf 8.0.0

simdutf 8.0.0
Группа Разработка

Состоялся выпуск 8.0.0 библиотеки simdutf.

Библиотека предоставляет быстрые SIMD-оптимизированные функции Unicode:

  • проверка строк ASCII, UTF-8, UTF-16LE/BE и UTF-32, с идентификацией ошибок и без неё;
  • транскодирование Latin1 в UTF-8, UTF-16LE/BE и UTF-32, с идентификацией ошибок и без неё;
  • подсчет символов в строках UTF-8 и UTF-16LE/BE;
  • перекодирование binary <-> base64, с URL-кодированием или без него;
  • изменение порядка байтов строк.

Библиотекой также предоставляются консольные утилиты fastbase64 и sutf.

( читать дальше... )

>>> Подробности на GitHub

 , , , ,

dataman
()

libunicode 0.7.0

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 для получения подробной информации о строках.

( читать дальше... )

>>> Подробности на GitHub

 , , ,

dataman
()

libzim 9.4.0

libzim 9.4.0
Группа Open Source

26 октября, после более полугода разработки, состоялся выпуск 9.4.0 библиотеки libzim, предназначенной для работы с файлами в формате ZIM (openzim.org). Разработка библиотеки ведётся и спонсируется проектом Kiwix.

ZIM – формат, предназначенный для офлайн-хранения информации, полученной из Web, в виде одного файла. В ZIM-файле в сжатом виде находятся логически связанные между собой HTML-страницы (а иногда и образы сайтов целиком) с работающими гиперссылками, изображениями, звуком и видео.

Проектом Kiwix разрабатывается набор консольных утилит zim-tools, десктопный и мобильные клиенты, и скрипты для создания файлов ZIM из дампов проектов Wikimedia или из HTML.

Также libzim используется в форке словаря GoldenDict – GoldenDict-NG.

Краткий список возможностей библиотеки:

  • создание файлов ZIM cо сжатием данных в формате Zstandard (ранее поддерживались форматы ZIP, LZMA и Bzip2);
  • поиск по названиям статей;
  • опциональная поддержка Xapian для полнотекстового поиска. Множество файлов ZIM можно скачать здесь.

Библиотека написана на языке C++ и распространяется по лицензии GNU GPL 2.0.

( читать дальше... )

>>> Подробности на GitHub

 , , , ,

dataman
()

MyLibrary 4.2.1

Группа Open Source

Состоялся выпуск каталогизатора домашней библиотеки MyLibrary 4.2.1. Код программы написан на языке программирования С++ и доступен (GitHub, GitFlic) под лицензией GPLv3. Графический интерфейс пользователя реализован с помощью библиотеки GTK4. Программа адаптирована для работы в операционных системах семейства Linux и Windows. Для пользователей Arch Linux в AUR доступен готовый сценарий сборки пакета. Для пользователей Windows доступен экспериментальный инсталлятор.

MyLibrary каталогизирует файлы книг в формате fb2, epub, pdf, djvu, odt, txt, md, как доступные напрямую, так и упакованные в архивы (zip, 7z, jar, cpio, iso, tar, tar.gz, tar.bz2, tar.xz, rar), и создаёт собственную базу данных, не изменяя исходные файлы и не меняя их положения. Для каталогизации также доступен формат fbd (файл книги упакованный в архив вместе с файлом с расширением fbd, содержащем тэг description формата fb2). В формате fbd могут храниться любые файлы, не только книги. Контроль целостности коллекции и её изменений осуществляется за счёт создания базы данных хэш-сумм файлов и архивов.

( читать дальше... )

>>> Подробности на OpenNET

 , , домашняя библиотека, ,

dataman
()

Qmmp 2.3.0

Группа Мультимедиа

13 октября, после двух месяцев разработки, состоялся выпуск 2.3.0 кроссплатформенного мультимедийного плеера Qmmp.

Некоторые возможности плеера:

  • Поддержка операционных систем GNU/Linux, FreeBSD и Microsoft Windows.
  • Поддержка большого количества мультимедийных форматов.
  • Аудио и визуальные эффекты.
  • Поддержка систем вывода звука:
    • OSS4 (FreeBSD)
    • ALSA (Linux)
    • PulseAudio
    • PipeWire
    • JACK
    • QtMultimedia
    • Icecast
    • WaveOut (Win32)
    • DirectSound (Win32)
    • WASAPI (Win32)
  • Поддержка обложек XMMS и Winamp 2.x.
  • Альтернативный пользовательский интерфейс с использованием стандартного оформления.
  • 10-полосный эквалайзер.
  • И многое другое.

( читать дальше... )

>>> Страница других дополнений

>>> Подробности на ylsoftware.com

 , , , ,

dataman
()