Daniel J. Bernstein, tuntud krüptograafia ja turvatarkvara ekspert, on välja töötanud projekte nagu qmail, djbdns, NaCl, Ed25519, Curve25519 ja ChaCha20-Poly1305. Ta on avaldanud cdb projekti väljaande 20250121, mis pakub andmete salvestamise formaati ja sellega seotud teeki rakenduste jaoks, et hõlbustada andmebaaside töötlemist võtme/väärtuse vormis. See väljaanne tuli rohkem kui 25 aastat pärast eelmise cdb 0.75 versiooni, mis ilmus 2000. aasta veebruaris.
Uues versioonis on rakendatud cdb64 formaat, mis on kohandatud 64-bitiste andmetüüpide struktuuride jaoks. 64-bitistel platvormidel võimaldab uus formaat luua andmebaase, mille suurus ulatub eksoabaiti (varasemalt ei saanud andmebaasi suurus ületada 4 GB). Andmebaas on väga kompaktne, kasutades 4096-baidist pealkirja ja 48 baiti teenusteavet iga kirje kohta (32-bitise variandi puhul on pealkiri 2048 baidi ja 24 baiti iga kirje kohta). Andmebaasi kasutamisel toimub ainult kaks diskitoimingut olemasoleva võtme korral ja üks, kui võtme pole. Toetatakse atomaarset andmebaasi vahetust, mis on vastupidav äkilistele katkestustele ning ei blokeeri lugemiseks juurdepääsu.
Teised muudatused:
- Toetatakse konfigureerimise skripti ja "make install" käsklusega koostamist.
- Testide skriptide seos csh-iga on lõpetatud.
- Kõik sisemised täisarvud on asendatud num-tüüpi, mis on määratletud kui "long long". Funktsioonid uint32, fmt ja scan on asendatud num-tüübiga töötavate funktsioonidega.
- Puhverdusliides on jagatud inbuf ja outbuf-iks. Liidese hier on puhastatud.
- Koodist on eemaldatud kasutamata funktsioonide määratlused.
- Kasutamisest on kõrvaldatud vahepealsed funktsioonid, nagu str_len, alloc, uint32, exit, error ja systype.
- Kood on ümber kirjutatud, et lõpetada vananenud C-struktuuride, nagu vanamoodne funktsioonide määratlemine, tühjad prototüübid ja vana peamise määratlemise stiil, kasutamine.
- Kasutusele on võetud const ja static määratlused.
- Koostamisel on aktiveeritud lipp "-Wall" ja kood on puhastatud hoiatuste eemaldamiseks.
- Kompileerimisel on kaasatud valikud -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing ja -fno-strict-overflow.
Allikas: opennet.ru
