Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

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

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 1050
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 46 раз
Поблагодарили: 24 раза

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

Сообщение root:# »

Дэниэл Бернштейн обновил библиотеку 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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=64352