LINUX.ORG.RU

Library


2

1

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

SAIL 0.9.0 — библиотека декодирования изображений

Группа Open Source

Сегодня, в день 20-летия SAIL — библиотеки декодирования изображений для C/C++ — вышел релиз 0.9.0.

Демонстрационный скриншот: https://sail.software/demo.webp

Ключевые особенности:

  1. Четыре уровня API для в зависимости от ваших нужд.

Самый неглубокий уровень погружения - junior, где возможно загрузить только один фрейм с помощью двух строчек кода:

struct sail_image *image;
    SAIL_TRY(sail_load_from_file(path, &image));

Самый глубокий уровень погружения — загрузка анимированных или многостраничных изображений из нестандартных источников (не файла или памяти).

  1. Загрузка из файла или памяти из коробки.
  2. Динамически подгружаемые кодеки. Возможность скомпилировать кодеки в одну библиотеку (-DSAIL_COMBINE_CODECS=ON) если динамическая загрузка по какой-то причине неудобна.
  3. Написана на C11 с биндингом на C++11.
  4. Доступна на Windows, Linux, macOS.
  5. Доступна в пакетных менеджерах Conan, vcpkg, brew (некоторые PR ожидают слияния).
  6. Поддерживает все современные форматы изображений: JPEG, PNG, TIFF, GIF, AVIF, WEBP, JPEG XL и другие.
  7. Быстрее почти всех своих конкурентов в лице STB или FreeImage.

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

 , , ,

anonymous
()

msgpack C/C++ 6.0.0

Группа Open Source

Вышла новая версия msgpack for C/C++ — библиотеки сериализации двоичных данных на основе формата MessagePack.

Важные изменения:

  • имя С пакета в CMake изменено на msgpack-c;
  • имя С++ пакета в CMake изменено на msgpack-cxx;
  • удалено обязательное требование использования С++, если не используются тесты.

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

 , , , ,

dataman
()

GNU C Library v2.30

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

Вышла новая версия системной библиотеки glibc – 2.30.

Некоторые обновления:

  • Кодировка символов, информация о типах символов и таблицы транслитерации обновлены и теперь поддерживают Unicode версии 12.1.0.
  • Динамический компоновщик принимает аргумент --preload для предварительной загрузки объектов в дополнение к переменной окружения LD_PRELOAD.
  • Добавлена ​​функция twalk_r. Она похожа на уже имеющуюся функцию twalk, но она может передавать дополнительный аргумент в функцию обратного вызова.
  • В Linux были добавлены функции getdents64, gettid и tgkill.
  • Функции malloc, calloc, realloc, reallocarray, valloc, pvalloc, memalign и posix_memalign теперь не работают с объектами, размер которых больше, чем PTRDIFF_MAX. Это сделано для того, чтобы избежать переполнения типа ptrdiff_t.
  • Добавлены новые функции pthread_cond_clockwait, pthread_mutex_clocklock, pthread_rwlock_clockrdlock, pthread_rwlock_clockwrlock и sem_clockwait. Они эквивалентны timed, но также могут принимать параметр clockid_t, чтобы определить время ожидания. Все функции позволяют ожидать CLOCK_MONOTONIC и CLOCK_REALTIME. Решение о том, какие часы использовать, принимается во время ожидания (в отличие от pthread_condattr_setclock, который требует выбора часов во время инициализации).
  • В AArch64 распознаватель GNU IFUNC вызова ABI изменился: старые распознаватели все еще работают, а новые могут использовать второй аргумент, который может быть расширен в будущем. В настоящее время он содержит значение AT_HWCAP2.

>>> Больше изменений и подробности

 , ,

anonymous
()

Google представил открытую библиотеку Abseil для разработчиков на C++

Группа Google

В понедельник Google выпустил исходные коды библиотеки Abseil, созданной для того, чтобы значительно дополнить стандартную библиотеку языка C++. Данный код на протяжении многих лет использовался как базовая библиотека при разработке закрытого ПО, но был вынесен в отдельный открытый проект для упрощения открытия исходных кодов и разработки других библиотек, например, protobuf, grpc и tensorflow. Код распространяется под лицензией Apache 2.0.

Библиотека собирается с помощью bazel — системы сборки с открытым кодом, которая используется в Google. Данная система сборки позволяет точно контроллировать зависимости и получать воспроизводимые артефакты, но достаточно неудобна для повседневного использования. Но библиотека предполагает статическую линковку, так что её интеграция в любую систему сборки будет тривиальной.

Интересные части библиотеки:

  • absl::Mutex — примитив синхронизации, который одновременно может служить мьютексом, condition variable и read-write-блокировкой. Данный класс был разработан до появления C++11, но не был заменён std::mutex и его аналогами, так как предоставляет менее ошибкопорождающий интерфейс.
  • Бекпорты некоторых возможностей C++14/C++17 для компиляторов, поддерживающих только C++11: absl::make_unique, absl::optional, absl::any, absl::span, absl::string_view. При этом при сборке новым компилятором большинство absl:: типов будут обычным typedef для библиотечных.
  • «Стандартный» набор функций работы со строками: split, join, replace, объединение строк, перевод чисел в строки и обратно.
  • Функции и классы для работы с временем и промежутками времени (по сути дублирующие аналоги из std::chrono); 128-битный целочисленный тип данных; InlinedVector, позволяющий хранить маленькие массивы без выделения памяти; и прочее.

В данный момент список не очень большой, но библиотека постоянно будет дополняться.

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

 , , ,

vzzo
()

Экосистема среды статистических вычислений R достигла рубежа 10 тысяч пакетов

Группа Open Source

Популярная среда статистических вычислений R пополнила свою экосистему пакетов-расширений 10 000-м пакетом.

Следует отметить, что данный рубеж развития преодолён в официальной базе пакетов CRAN, поскольку общее число пакетов написанных для этой самой популярной среды статистических расчетов давно превысило это число.

Размер экосистемы гарантирует наличие готового решения практически для любой задачи анализа и визуализации данных. Высокие стандарты предъявляемые к пакету для вхождения в CRAN и «бесшовное» встраивание новых функций в базовую среду R позволяет использовать любое расширение практически без потерь времени на адаптацию ранее написанного кода.

>>> Страница репозитория пакетов

 , ,

psv1967
()

PyStarDict v0.4

Группа Open Source

Доступна для скачивания библиотека PyStarDict, предназначенная для работы со словарями StarDict из Python.

Текущая версия 0.4 является первой условно стабильной, в которой реализован весь базовый функционал.

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

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

  • Чтение сжатых и несжатых словарей.
  • Представление словаря как dictionary like объекта.
  • Возврат перевода заданного слова.
  • Кэширование переводов для повторного использования.
  • Управление кэшем (очистка, удаление записей).
  • Проверка наличия слова в идексе словаря без чтения из файла его перевода.

>>> Страница PyStarDict на www.ohloh.net

 , ,

lig
()