ZXC 0.9.0

ZXC 0.9.0 ZXC 0.9.0 ZXC 0.9.0 ZXC 0.9.0

لائبريري ۽ ڪراس پليٽ فارم ڪنسول يوٽيليٽي جو نسخو 0.9.0 جاري ڪيو ويو آهي. ZXC (github.com)، اعليٰ ڪارڪردگي واري ملٽي ٿريڊ کي لاڳو ڪرڻ غير متناسب دٻاءُ نقصان کان سواءِ ۽ گيمنگ اثاثن، فرم ويئر، ۽ ايپليڪيشن پيڪيجز لاءِ بهتر ڪيل. فارميٽ "هڪ ڀيرو لکو، ڪيترائي پڙهو" (WORM) اصول استعمال ڪندي ٺاهيو ويو آهي.

LZ4 جهڙن ڪوڊيڪس جي برعڪس، ZXC ڊيڪپريس ڪرڻ وقت وڌ ۾ وڌ ٿرو پُٽ لاءِ ڪمپريشن اسپيڊ کي قربان ڪري ٿو.

ڊيڪمپريشن جي رفتار ايپل سلڪون تي LZ4 کان 40%+ وڌيڪ، گوگل ايڪسين (ARM64) تي 25%+ وڌيڪ ۽ x86_64 تي 5%+ وڌيڪ قرار ڏني وئي آهي، جڏهن ته سڀني حالتن ۾ هڪ اعليٰ ڪمپريشن تناسب مهيا ڪيو ويو آهي.

هي رليز هڪ ٻيهر استعمال ٿيندڙ حوالي سان API، بلاڪ سائيز کي ترتيب ڏيڻ جي صلاحيت، هڪ مڪمل API ۽ ABI ريفرنس گائيڊ، ۽ ڪيترائي سيڪيورٽي سان لاڳاپيل حل متعارف ڪرائي ٿو، جنهن ۾ ڪمپريشن ماڊيول جي فزنگ دوران دريافت ڪيل هيپ تي ٻڌل بفر اوور فلو ڪمزوري لاءِ هڪ حل شامل آهي.

هن رليز ۾ اهڙيون تبديليون شامل آهن جيڪي ABI کي ٽوڙين ٿيون، تنهن ڪري SOVERSION کي 2 تائين وڌايو ويو آهي.

هي منصوبو C ۾ لکيل آهي ۽ BSD 3 لائسنس تحت ورهايو ويو آهي.

تفصيل ڏسو
  • تبديليون جيڪي عدم مطابقت جو سبب بڻجن ٿيون:
    • سورس 2: لائبريري ABI ورجن وڌايو ويو آهي. سورس 1 لاءِ مرتب ڪيل بائنري کي ٻيهر مرتب ڪرڻ گهرجي.
    • آپشن اسٽرڪچر: zxc_compress() ۽ zxc_decompress() فنڪشن هاڻي پوزيشنل پيرا ميٽرز جي بدران zxc_compress_opts_t* ۽ zxc_decompress_opts_t* پيرا ميٽرز کي قبول ڪن ٿا. ڊفالٽ رويي لاءِ، NULL پاس ڪريو.
    • بلاڪ سائيز انڪوڊنگ: فائل هيڊر هاڻي بلاڪ سائيز کي پوئين ٻن-اسڪيل انڪوڊنگ جي بدران لاگ 2 ايڪسپونٽ [12..21] طور محفوظ ڪري ٿو. 64 جي پراڻي قيمت اڃا تائين پسمانده مطابقت لاءِ قبول ڪئي ويندي آهي.
  • نيون خصوصيتون:
    • مبهم، هيپ-الاڪيٽڊ ڪمپريشن ۽ ڊيڪمپريشن ڪنٽيڪشن جيڪي هر ڪال تي ميموري مختص ڪرڻ جي اوور هيڊ کي ختم ڪن ٿا؛ فائل سسٽم پلگ ان (اسڪواشف، ڊارف) ۽ بيچ پروسيسنگ لاءِ مثالي:
      • ڪمپريشن لاءِ zxc_create_cctx()، zxc_free_cctx() ۽ zxc_compress_cctx()؛
      • ڊيڪپريشن لاءِ zxc_create_dctx()، zxc_free_dctx() ۽ zxc_decompress_dctx()؛
      • اندروني بفر صرف تڏهن ٻيهر مختص ڪيا ويندا آهن جڏهن بلاڪ سائيز يا ليول ويليو ڪالن جي وچ ۾ تبديل ٿئي ٿو.
  • حسب ضرورت بلاڪ سائز:
    • بلاڪ سائيز هاڻي zxc_compress_opts_t structure ۾ block_size فيلڊ استعمال ڪندي ترتيب ڏئي سگهجي ٿو؛
    • قابل قبول حد: 4 KB کان 2 MB (ٻن جي طاقت)؛
    • ڊفالٽ طور تي قدر 256 KB رهي ٿو؛
    • zxc ڪنسول يوٽيلٽي ۾ هڪ نئون پيرا ميٽر --block-size (يا -B) شامل ڪيو ويو آهي، جيڪو يونٽ لاحقن (4K، 1M يا 4KB، 1MB، وغيره) کي سپورٽ ڪري ٿو.
  • تيز سڌو ڊيڪمپريشن:
    • جڏهن منزل جو بفر ڪافي ڀريل هوندو آهي، ته ڊيڪمپريشن وچولي ڪاپي کي ڪم ڪندڙ بفر ڏانهن ڇڏي ڏيندو آهي، جيڪو ميموري لوڊ گهٽائيندو آهي ۽ دير کي گهٽائيندو آهي.
  • سيڪيورٽي ۽ استحڪام:
    • zxc_bitpack_stream_32 ۾ فڪسڊ هيپ بفر اوور فلو: جيڪڏهن آخري پيڪ ٿيل ويليو بائيٽ جي حد پار ڪري ته پيڪنگ لوپ آئوٽ پُٽ بفر جي آخر کان 4 بائيٽ تائين لکي سگهي ٿو؛
    • ڊيڪپريس ڪرڻ وقت فڪسڊ اسٽريم چيڪنگ (zxc_decompress.c ۾): هڪ چيڪ شامل ڪيو ويو ته يقيني بڻايو وڃي ته تسلسل جي وهڪري جي سائيز ترتيبن جي اعلان ڪيل تعداد لاءِ ڪافي آهي، اجازت ڏنل حد کان ٻاهر پڙهڻ کي روڪيندي.
    • بلاڪ سائيز چيڪ ڪريو: zxc_cctx_init() ۽ zxc_read_file_header() هاڻي چيڪ ڪريو ته بلاڪ سائيز [ZXC_BLOCK_SIZE_MIN, ZXC_BLOCK_SIZE_MAX] جي حد ۾ آهن ۽ اهي ٻن جي طاقت آهن؛
    • C++ مطابقت: سڀني پبلڪ هيڊر فائلن ۾ هاڻي C++ ۾ بيحد استعمال لاءِ خارجي "C" حفاظتي تعميرات شامل آهن؛
    • فز ٽيسٽنگ لاءِ ٽيسٽ ڪورپس اسٽوريج: ڪلسٽر فز لائيٽ سي آءِ لاءِ مسلسل ڪورپس اسٽوريج ترتيب ڏني وئي آهي.
  • دستاويزي:
    • دستاويز/API.md: هڪ نئون جامع API ۽ ABI حوالو جيڪو سڀني 21 برآمد ٿيل علامتن، قسم جي تعريفن، نمائش جي حڪمت عملي، ABI ورزننگ، موضوع جي حفاظت جي ضمانت، ۽ غلطي سنڀالڻ جي نمونن کي بيان ڪري ٿو؛
    • انسٽاليشن جي هدايتن ۽ پيڪيجز جي حيثيت بابت معلومات سان گڏ اپڊيٽ ٿيل مين ۽ README فائل (vcpkg، Conan، Homebrew)؛
    • فائل اپڊيٽ ڪئي وئي دستاويز/FORMAT.md ايڪسپونٽ تي ٻڌل بلاڪ سائيز انڪوڊنگ جي وضاحت سان.
  • پٿون، رسٽ، ۽ نوڊ. جي لاءِ ريپرز کي اپڊيٽ ڪيو ويو آهي.

جو ذريعو: linux.org.ru

تبصرو شامل ڪريو