Daniel Bernstein a actualizat biblioteca cdb

Daniel Bernstein (Daniel J. Bernstein), expert recunoscut în domeniul criptografiei și dezvoltării de software sigur, creator al unor proiecte precum qmail, djbdns, NaCl, Ed25519, Curve25519 și ChaCha20-Poly1305, a publicat versiunea proiectului cdb 20250121, care oferă un format de stocare a datelor și o bibliotecă asociată pentru integrarea funcțiilor de lucru cu Baze de Date sub formă de cheie/valoare în aplicații. Această versiune a fost realizată la mai bine de 25 de ani de la ultima actualizare cdb 0.75, care a fost publicată în februarie 2000.

Noua versiune implementează formatul cdb64, adaptat la structuri cu tipuri pe 64 de biți. Pe platformele pe 64 de biți, noul format permite crearea de baze de date de până la un exabyte (anterior dimensiunea Bazei de Date nu putea depăși 4 GB). Baza de date este foarte compactă, utilizând un antet de 4096 de biți și câte 48 de biți de informații de control pentru fiecare înregistrare (pentru varianta pe 32 de biți, antetul este de 2048 și câte 24 de biți pe înregistrare). La accesarea Bazei de Date, se efectuează doar două operații de acces pe disc în prezența cheii și una în absența acesteia. Se susține înlocuirea atomică a Bazei de Date, rezistentă la încheierea neașteptată și fără blocarea accesului la citire.

Alte modificări:

  • Suport pentru compilare folosind scriptul configure și instalare cu comanda “make install”.
  • Eliminarea legăturii testelor la csh.
  • Toate valorile întregi interne au fost înlocuite cu tipul „num”, definit ca „long long”. Funcțiile uint32, fmt și scan au fost înlocuite cu funcții care lucrează cu tipul num.
  • API-ul pentru gestionarea buferele a fost divizat în inbuf și outbuf. S-a realizat o curățare a interfeței hier.
  • S-au eliminat definițiile funcțiilor neutilizate din cod.
  • Se renunță la utilizarea obișnuită a funcțiilor de îmbunătățire, cum ar fi str_len, alloc, uint32, exit, error și systype.
  • Codul a fost refăcut pentru a elimina utilizarea construcțiilor învechite ale C-ului, cum ar fi vechiul stil de definire a funcțiilor, prototipurile goale și vechiul stil de definire a main().
  • Au fost activate definițiile const și static.
  • În timpul compilării a fost activat flagul „-Wall”, iar codul a fost curățat pentru a elimina avertizările.
  • În timpul compilării au fost incluse opțiunile -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing și -fno-strict-overflow.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster