Daniel J. Bernstein, tuntud krĂŒptograafia ja turvalise tarkvara ekspert, kes on loonud selliseid projekte nagu qmail, djbdns, NaCl, Ed25519, Curve25519 ja ChaCha20-Poly1305, on avaldanud projekti cdb 20250121, mis pakub andmete salvestamise formaati ja kaasnevat teeki rakenduste integreerimiseks andmebaaside vĂ”tme/vÀÀrtuse funktsioonidega. VĂ€ljaanne on koostatud enam kui 25 aastat pĂ€rast eelmist cdb 0.75 vĂ€rskendust, mis loodud veebruariks 2000.
Uues versioonis on rakendatud cdb64 formaat, mis on ĂŒle viidud 64-bitiste tĂŒĂŒpide struktuuride peale. 64-bitistes platvormides vĂ”imaldab uus formaat luua andmebaase kuni eksabaiti (varasemalt ei tohtinud andmebaasi maht ĂŒletada 4 GB). Andmebaas on vĂ€ga kompaktne, kasutades 4096-baidiseid pĂ€iseid ja 48 baiti teenusteavet iga kirje kohta (32-bitise versiooni jaoks pĂ€is 2048 ja 24 baiti kirje kohta). Andmebaasi juurdepÀÀsuks piisab kahest kettatoimingu operatsioonist olemasoleva vĂ”tme korral ja ĂŒhes â puuduva vĂ”tme korral. Toetatakse andmebaasi aatomaarset asendamist, mis on vastupidav ootamatutele katkestustele ja ei blokeeri lugemiseks juurdepÀÀsu.
Teised muudatused:
- Toetatakse koostamist configure skripti abil ja paigaldamist kĂ€suga âmake installâ.
- Teststsenaariumide sidumine csh-ga on eemaldatud.
- KĂ”ik sisemised tĂ€isarvud on asendatud ânumâ tĂŒĂŒpi, mis on mÀÀratletud kui âlong longâ. Funktsioonid uint32, fmt ja scan on asendatud funktsioonidega, mis töötavad num-tĂŒĂŒbiga.
- Andmebuffereid kÀsitlev liides on jagatud inbuf-iks ja outbuf-iks. Liidese hier on puhastatud.
- Koodist on eemaldatud kasutamata funktsioonide mÀÀratlemised.
- On lÔpetatud mÀhiste kasutamine, nagu str_len, alloc, uint32, exit, error ja systype.
- Kood on ĂŒmber kujundatud, et lĂ”petada vanade C-konstruktsioonide, nagu vanad funktsioonide mÀÀratlemise stiilid, tĂŒhi prototĂŒĂŒp ja vanad main() mÀÀratlemise stiilid, kasutamine.
- On kasutusele vÔetud const ja static mÀÀratlemised.
- Kogumisel on aktiveeritud lipp â-Wallâ, ja kood on puhastatud hoiatuste kĂ”rvaldamiseks.
- Kompileerimisel on kaasatud valikud -fwrapv, -fno-delete-null-pointer-checks, -fno-strict-aliasing ja -fno-strict-overflow.
Allikas: opennet.ru
