Elérhető a zlib-ng 2.0 könyvtár kiadása, amely a projekt első stabil kiadásaként van megjelölve (ráadásul már elérhető a 2.0.1 javító kiadás is). A zlib-ng API szinten kompatibilis a zlib-bal, de további optimalizálásokat kínál, amelyeket a zlib hivatalos tárolójában a konzervatív változtatás-elfogadási megközelítés miatt nem fogadtak el. Továbbá javasoltak egy korszerűsített API-t, amely a zlib-ra épül, de a portolás egyszerűsítése érdekében módosították. A projekt kódját C nyelven írták és zlib licenc alatt terjesztik.
A x86_64 rendszereken végzett tesztek azt mutatták, hogy a Zlib-ng körülbelül 4-szer gyorsabb a zlib-hoz képest a tömörítési műveletek során, és 2,1-szer gyorsabb a gzip-nál. A bontásnál a Zlib-ng körülbelül 2,4-szer gyorsabb a zlib-nál és 1,8-szor gyorsabb a gzip-nál. A tömörítési/bontási teljesítmény jelentős növelése főként az SSE*, AVX2, VSX és Neon vektoriális utasítások alkalmazásának köszönhető.
Továbbá hozzá lett adva az Adler32 ellenőrző összegek számítási algoritmusának megvalósítása, amelyet SSSE3, AVX2, Neon és VSX utasításokkal optimalizáltak, a CRC32-B megvalósítása a PCLMULQDQ és ACLE alapjain, továbbfejlesztett hashing táblák, a SSE2, AVX2, Neon és VSX alapú Slide hash megvalósítása, valamint az SSE4.2 és AVX2 alapú összehasonlító műveletek. Az optimalizált teljesítményre irányuló változtatások is szerepelnek, amelyeket az Intel és Cloudflare forkjaiban használtak. Az adatbuffer relációs folyamatok is optimalizálva lettek. A CMake és NMake build rendszerek támogatása is be lett vezetve. A folyamatos integrációs rendszerek bevonásával teszteltek.
A Zlib-ng optimalizációi mellett a disztribúciós csomagokban felhalmozódott javítófoltok is belekerültek, valamint a zlib-ben használt megoldások eltávolítása, amelyek régi fordítók és platformok támogatását szolgálták, de akadályozták a hatékonyabb módszerek megvalósítását (például a 16-bites rendszerek és az ANSI C fordítókkal való kompatibilitás biztosításához szükséges korlátozások). A statikus elemzők, fuzzing tesztelő rendszerek és memóriakezelési problémákra figyelmeztető eszközök (AddressSanitizer és MemorySanitizer) által azonosított hibák kiküszöbölésére is dolgoztak.
Forrás: opennet.ru
