библиотека - plibsys

0
Ваша оценка: Нет

plibsys — это кросс-платформенная системная библиотека, написанная на чистом C.

Основной упор был изначально сделан на портируемость и поддержку широкого спектра компиляторов. Для достижения этих целей у библиотеки отсутствуют (небольшим исключением является SCO OpenServer 5 ввиду отсутствия на ней потоков) какие-либо зависимости — используются только те вызовы, которые доступны в целевой ОС. Также никакого ассемблера и использования прочих недокументированных возможностей. Для сборки нужен только рабочий компилятор и CMake.

Изначально библиотека писалась для запуска потоков и работы с сокетами, но постепенно функционал расширялся по мере необходимости. На данный момент есть следующий функционал:

  • Платформо-независимые типы данных
  • Потоки и средства синхронизации: мьютексы, условные переменные, блокировки чтения-записи, спинлоки, атомарные операции
  • Межпроцессное взаимодействие: семафоры, разделяемая память, кольцевой буфер
  • Сокеты (UDP, TCP) с поддержкой IPv4 и IPv6
  • Хэш-функции: MD5, SHA-1, SHA-2, SHA-3, GOST (R 34.11-94)
  • Бинарные деревья: несбалансированное, красно-черное, АВЛ
  • Загрузка разделяемых библиотек
  • Работа с памятью: mmap, установка собственного аллокатора
  • Замер времени исполнения (по возможности — в высоком разрешении)
  • Базовая работа с файлами и директориями
  • Парсер файлов INI
  • Макросы для определения архитектуры ЦПУ, ОС и компилятора
  • Различные вспомогательные структуры данных типа связанного списка, хэш-таблицы, обработка строк

На все есть документация.

Поддерживаемые платформы и компиляторы

Абсолютно все модули покрыты Unit-тестами. Есть интеграция с CI (Travis, AppVeyor), где прогоняется большое число разнообразных конфигураций. Также для улучшения качества кода и снижения числа ошибок используется сервис статического анализа кода Coverity. Для оценки покрытия тестами используется Codecov.

На данный момент поддерживаются следующие платформы:

  • GNU/Linux
  • macOS
  • Windows, Cygwin, MSYS
  • FreeBSD, NetBSD, OpenBSD, DragonFlyBSD
  • Solaris
  • AIX
  • HP-UX
  • Tru64
  • OpenVMS
  • OS/2
  • IRIX
  • QNX Neutrino, BlackBerry 10
  • UnixWare 7
  • SCO OpenServer 5
  • Haiku
  • Syllable
  • BeOS

Также работоспособность библиотеки проверена на следующих компиляторах и архитектурах:

  • MSVC (x86, x64) 2003 и выше
  • MinGW (x86, x64)
  • Open Watcom (x86)
  • Borland (x86)
  • GCC (x86, x64, PPC32be, PPC64be/le, IA-64/32, IA-64, Alpha, HPPA2.0-32, MIPS32, AArch32, SPARCv9)
  • Clang (x86, x64, PPC32be)
  • Intel (x86, x64)
  • QCC (x86, AArch32)
  • Oracle Solaris Studio (x86, x64, SPARCv9)
  • MIPSpro (MIPS32)
  • XL C (PPC64le)
  • DEC C (Alpha)
  • PGI (x86, x64)
  • Cray (x64)

Тип приложения: библиотека
Сайт разработчика: https://github.com/saprykin/plibsys
Что почитать?


Разместил: vikos 28 Май 2018 в 10:59

Уф печать на фанере
печать на любых поверхностях. Быстро и выгодно
printari.ru