Daniel Bernstein atualizou a biblioteca cdb

Daniel Bernstein (Daniel J. Bernstein), renomado especialista em criptografia e desenvolvimento de software seguro, famoso por projetos como qmail, djbdns, NaCl, Ed25519, Curve25519 e ChaCha20-Poly1305, publicou a versão do projeto cdb 20250121, que oferece um formato de armazenamento de dados e uma biblioteca auxiliar para a integração em aplicativos de funções para operar com bancos de dados no formato chave/valor. Esta versão foi criada após mais de 25 anos desde a última atualização do cdb 0.75, lançada em fevereiro de 2000.

A nova versão implementa o formato cdb64, traduzido para estruturas com tipos de 64 bits. Nas plataformas de 64 bits, o novo formato permite criar bancos de dados com tamanho de até um exabyte (anteriormente, o tamanho do banco de dados não poderia exceder 4 GB). O banco de dados é muito compacto e utiliza um cabeçalho de 4096 bytes e 48 bytes de informações de metadados para cada entrada (para a versão de 32 bits, o cabeçalho é de 2048 e 24 bytes por entrada). Ao acessar o banco de dados, são realizadas apenas duas operações de acesso ao disco quando a chave está presente e uma quando está ausente. Suporta a substituição atômica do banco de dados, resistente a falhas e não bloqueia o acesso para leitura.

Outras alterações:

  • Suporte para compilação utilizando o script configure e instalação via comando 'make install'.
  • Removida a vinculação de scripts de teste ao csh.
  • Todos os valores inteiros internos foram substituídos pelo tipo 'num', definido como 'long long'. As funções uint32, fmt e scan foram substituídas por funções que operam com o tipo num.
  • A interface do programa para trabalhar com buffers foi dividida em inbuf e outbuf. A interface hier foi limpada.
  • Definições de funções não utilizadas foram removidas do código.
  • Interrupção do uso de wrappers, como str_len, alloc, uint32, exit, error e systype.
  • O código foi reestruturado para interromper o uso de construções C obsoletas, como o estilo antigo de definição de funções, protótipos vazios e o estilo antigo de definição de main().
  • Definições const e static foram ativadas.
  • Durante a compilação, a flag '-Wall' foi ativada e o código foi limpo para eliminar avisos.
  • As opções -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing e -fno-strict-overflow foram incluídas na compilação.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster