Даниел Бернщайн актуализира библиотеката cdb.

Даниел Бернштейн (Daniel J. Bernstein), известный эксперт в области криптографии и разработки защищённого ПО, создатель таких проектов, как qmail, djbdns, NaCl, Ed25519, Curve25519 и ChaCha20-Poly1305, выпустил обновление проекта cdb 20250121, предлагающее формат хранения данных и сопутствующую библиотеку для интеграции в приложения функций работы с БД в формате ключ/значение. Обновление вышло спустя более 25 лет с момента последнего обновления cdb 0.75, выпущенного в феврале 2000 года.

В новой версии реализован формат cdb64, адаптированный под 64-разрядные структуры. На 64-разрядных платформах новый формат позволяет создавать БД размером до эксабайта (ранее максимальный размер БД не мог превышать 4 ГБ). БД очень компактная и использует заголовок размером 4096 байт и 48 байт служебной информации на каждую запись (для 32-разрядного варианта заголовок 2048 и по 24 байта на запись). При доступе к БД выполняются всего две операции чтения с диска при наличии ключа и одна — при его отсутствии. Поддерживается атомарная замена БД, устойчивая к аварийным завершениям и не блокирующая доступ на чтение.

Другие изменения:

  • Поддержка сборки с использованием скрипта configure и установки командой «make install».
  • Убрана привязка тестовых сценариев к csh.
  • Все внутренние целые значения заменены на тип «num», определённый как «long long». Функции uint32, fmt и scan заменены на функции, работающие с типом num.
  • Программный интерфейс работы с буферами разделён на inbuf и outbuf. Проведена чистка интерфейса hier.
  • Из кода убраны определения неиспользуемых функций.
  • Прекращено использование обвязок, таких как str_len, alloc, uint32, exit, error и systype.
  • Код переработан для прекращения использования устаревших конструкций Си, таких как старый стиль определения функций, пустые прототипы и старый стиль определения main().
  • Задействованы определения const и static.
  • При сборке активирован флаг «-Wall», а код очищен от предупреждений.
  • При компиляции включены опции -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing и -fno-strict-overflow.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster