Дэниэл Бернштейн обновил библиотеку cdb

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 719
Зарегистрирован: 20.08.2022

#

Дэниэл Бернштейн обновил библиотеку cdb
Дата публикации:Mon, 01 Dec 2025 12:16:37 +0300

Дэниэл Бернштейн (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
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64352

Жизнь за Нер'зула!

Ответить