{"id":170618,"date":"2026-05-11T18:24:52","date_gmt":"2026-05-11T16:24:53","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/openzl-0-2-0"},"modified":"2026-05-11T18:24:52","modified_gmt":"2026-05-11T16:24:53","slug":"openzl-0-2-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/openzl-0-2-0","title":{"rendered":"OpenZL 0.2.0","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23395\/original.png\">           <img decoding=\"async\" alt=\"OpenZL 0.2.0\" src=\"\/wp-content\/uploads\/2026\/05\/5a95eacd080df4ddd86f1cc2d2af0762.jpg\" style=\"display:block;margin: 0 auto;\" \/>         <\/a>                <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23396\/original.png\">           <img decoding=\"async\" alt=\"OpenZL 0.2.0\" src=\"\/wp-content\/uploads\/2026\/05\/e654044b14efa48eb39324fa8a242458.jpg\" style=\"display:block;margin: 0 auto;\" \/>         <\/a>                                              <noindex>          <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23395\/original.png\" class=\"active\"><\/a><\/noindex>                                                      <a rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/images\/23396\/original.png\"><\/a>                                     <noindex><\/p>\n<p>Po siedmiu miesi\u0105cach prac nad rozwojem, wydano wersj\u0119 0.2.0 frameworka <a rel=\"nofollow\" href=\"https:\/\/openzl.org\">OpenZL<\/a>, przeznaczonego do tworzenia kompresor\u00f3w danych bez strat.<\/p>\n<p><\/noindex> <\/p>\n<p>Framework sk\u0142ada si\u0119 z podstawowej biblioteki oraz narz\u0119dzi do tworzenia wyspecjalizowanych kompresor\u00f3w opisanych w j\u0119zyku <a rel=\"nofollow\" href=\"https:\/\/openzl.org\/sddl\">SDDL<\/a>.<br \/> Aby stworzy\u0107 dobry wyspecjalizowany kompresor, nale\u017cy przej\u015b\u0107 przez dwa etapy:<\/p>\n<ol>\n<li>Analiz\u0119 danych, aby wydoby\u0107 struktur\u0119.<\/li>\n<li>Zastosowanie dobrych kompresor\u00f3w zaplecza, kt\u00f3re wykorzystuj\u0105 uzyskan\u0105 struktur\u0119 w celu osi\u0105gni\u0119cia dobrej kompresji.<\/li>\n<\/ol>\n<p>OpenZL zapewnia narz\u0119dzia do obu etap\u00f3w.<\/p>\n<p>Projekt napisano w j\u0119zykach C i C++ i jest dystrybuowany na licencji BSD.<\/p>\n<h5>G\u0142\u00f3wne zmiany<\/h5>\n<p><strong>SDDL2<\/strong><\/p>\n<p>SDDL zosta\u0142 ca\u0142kowicie przebudowany od podstaw w celu osi\u0105gni\u0119cia za\u0142o\u017conych cel\u00f3w projektowych. Je\u015bli pocz\u0105tkowa wersja demonstracyjna by\u0142a uproszczonym \u015brodowiskiem wykonawczym, to SDDL2 \u2013 to pe\u0142noprawny kompilator: parser przekazuje dane do analizy semantycznej, ta z kolei przekazuje typizowane drzewo sk\u0142adniowe (AST) do optymalizatora, a optymalizator zarz\u0105dza generatorem kodu, kt\u00f3ry generuje bajtowy kod maszyny wirtualnej.<\/p>\n<p>Kluczowym rezultatem jest natychmiastowa analiza sk\u0142adniowa. Gdy miejsce zapisu mo\u017ce by\u0107 w pe\u0142ni okre\u015blone tylko przez parametry i sta\u0142e, silnik przechodzi bezpo\u015brednio do dowolnego pola, nie skanuj\u0105c poprzednich bajt\u00f3w, co zapewnia dost\u0119p bez kopiowania i przepustowo\u015b\u0107 na poziomie kilku GB\/s.<\/p>\n<p>Sam j\u0119zyk rozwija\u0142 si\u0119 razem z zestawem narz\u0119dzi. Teraz obs\u0142uguje bloki when dla warunkowych lokalizacji, parametryzowane i anonimowe zapisy, dost\u0119p do cz\u0142onk\u00f3w p\u00f3l zapisu, a tak\u017ce operatory bitowe i logiczne.<\/p>\n<p>Je\u015bli chodzi o wygod\u0119 programisty, etap analizy semantycznej teraz identyfikuje nieokre\u015blone odniesienia, niesp\u00f3jno\u015bci typ\u00f3w i b\u0142\u0119dy arno\u015bci na etapie kompilacji \u2013 z wskazaniem miejsca w kodzie \u017ar\u00f3d\u0142owym \u2013 a nie w trakcie wykonania, a tak\u017ce wydano rozszerzenie VS Code do pod\u015bwietlania sk\u0142adni plik\u00f3w .sddl.<\/p>\n<p><strong>Nowy wbudowany kodek LZ<\/strong><\/p>\n<p>W OpenZL teraz wbudowany jest w\u0142asny kodek LZ, przedstawiony jako ZL_GRAPH_LZ, oraz profil sekwencyjnej kompresji w narz\u0119dziu zli. Prace nad kodekiem trwaj\u0105: wci\u0105\u017c trwa rozszerzanie zestawu funkcji i zwi\u0119kszanie wydajno\u015bci przy przetwarzaniu ma\u0142ych danych wej\u015bciowych. Obecnie obs\u0142uguje funkcjonalno\u015b\u0107 r\u00f3wnowa\u017cn\u0105 z zstd na poziomie 1, z rozmiarem okna kompresji wynosz\u0105cym 64 KB.<\/p>\n<p> <noindex><\/p>\n<p>OpenZL umo\u017cliwia przekszta\u0142cenie ka\u017cdego etapu potoku LZ w celu zwi\u0119kszenia pr\u0119dko\u015bci. Jego architektura oparta na grafach pozwala r\u00f3wnie\u017c na \u0142\u0105czenie etap\u00f3w kodowania entropijnego, zamiast korzysta\u0107 z jednego potoku, kt\u00f3ry sprawdza si\u0119 w r\u00f3\u017cnych scenariuszach zastosowania. Nast\u0119pnie kilka etap\u00f3w mo\u017cna po\u0142\u0105czy\u0107 w jedn\u0105 operacj\u0119, aby poprawi\u0107 pr\u0119dko\u015b\u0107 przetwarzania. Pozwala to OpenZL osi\u0105gn\u0105\u0107 o 10% wy\u017csz\u0105 pr\u0119dko\u015b\u0107 kompresji i o 70% wy\u017csz\u0105 pr\u0119dko\u015b\u0107 dekompresji w por\u00f3wnaniu do Zstandard na poziomie 1 w case Silesia w <a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/terrelln\/412cda99d1e54126477219cacf38c971\">naszych testach<\/a>:<\/p>\n<p><\/noindex> <\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Kompresor<\/strong><\/th>\n<th><strong>Wsp\u00f3\u0142czynnik kompresji<\/strong><\/th>\n<th><strong>Pr\u0119dko\u015b\u0107 kompresji<\/strong><\/th>\n<th><strong>Pr\u0119dko\u015b\u0107 dekompresji<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OpenZL LZ poziom 1<\/td>\n<td>2.74<\/td>\n<td>466 MB\/s<\/td>\n<td>2288 MB\/s<\/td>\n<\/tr>\n<tr>\n<td>Zstd poziom 1 z rozmiarem okna 64K<\/td>\n<td>2.74<\/td>\n<td>419 MB\/s<\/td>\n<td>1254 MB\/s<\/td>\n<\/tr>\n<tr>\n<td>Zstd poziom 1<\/td>\n<td>2.89<\/td>\n<td>424 MB\/s<\/td>\n<td>1345 MB\/s<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Wsparcie dla bardzo du\u017cych danych wej\u015bciowych<\/strong><\/p>\n<p>zli teraz obs\u0142uguje przetwarzanie ogromnych zbior\u00f3w danych wej\u015bciowych (o wielko\u015bci kilku gigabajt\u00f3w). Przed kompresj\u0105 takie dane s\u0105 teraz automatycznie dzielone na fragmenty o kontrolowanym rozmiarze (domy\u015blnie \u2013 oko\u0142o 16MB), co pozwala ograniczy\u0107 zu\u017cycie pami\u0119ci, zwi\u0119ksza lokalno\u015b\u0107 danych i otwiera mo\u017cliwo\u015bci do przetwarzania r\u00f3wnoleg\u0142ego. W SDDL2 wprowadzono podobn\u0105 funkcj\u0119 automatycznego fragmentowania podczas pracy w schemacie. W trakcie tego procesu stworzono lub zaktualizowano nowe segmentatory \u2013 dla CSV, Parquet i standardowych danych numerycznych \u2013 i wszystkie segmentatory s\u0105 teraz serializowalne i konfigurowalne, wi\u0119c wybrany uk\u0142ad mo\u017ce by\u0107 zapisany w kompresorze i u\u017cyty ponownie p\u00f3\u017aniej.<\/p>\n<p>Dzia\u0142a to przejrzysto podczas kompresji. Nale\u017cy pami\u0119ta\u0107, \u017ce potok uczenia si\u0119 jest inny i pozostaje nienaruszony, wi\u0119c nie jest przeznaczony do przyjmowania gigantycznych danych wej\u015bciowych jako materia\u0142u szkoleniowego.<\/p>\n<p><strong>Ulepszenia w internetowym wizualizatorze grafu (<a rel=\"nofollow\" href=\"https:\/\/openzl.org\/tools\/trace\">spr\u00f3buj<\/a>)<\/strong><br \/> Teraz wizualizator rozpoznaje \u015blady kompresji i dekompresji od pocz\u0105tku do ko\u0144ca.<\/p>\n<p>Panel podgl\u0105du strumienia pozwala na przegl\u0105danie bajt\u00f3w rzeczywi\u015bcie przechodz\u0105cych przez ka\u017cde \u0142\u0105cze, a dzi\u0119ki elementom steruj\u0105cym przycinaniem nawet du\u017ce strumienie pozostaj\u0105 \u0142atwe do obs\u0142ugi.<\/p>\n<p>Panel ustawie\u0144 \u0142\u0105czy wszystkie opcje wy\u015bwietlania w jednym miejscu, a pe\u0142ny zestaw skr\u00f3t\u00f3w \u2013 nawigacja kierunkowa, uporz\u0105dkowane przeszukiwanie, rozwijanie i zwi\u0144anie, wyb\u00f3r w\u0119z\u0142\u00f3w \u2013 pozwala wygodnie pracowa\u0107 z narz\u0119dziem bez u\u017cycia myszy.<\/p>\n<p>Teraz \u015bledzenia maj\u0105 wersje, kompresja z rozbiciem na bloki jest wy\u015bwietlana poprawnie, a zli w ko\u0144cu mo\u017ce generowa\u0107 w\u0142asne \u015bledzenia za pomoc\u0105 nowych flag \u2013trace i \u2013trace-streams-dir.<\/p>\n<p><strong>R\u00f3\u017cne<\/strong><\/p>\n<ul>\n<li>Do katalogu dodano kilka kodek\u00f3w. Kodeki Partition i bitpack teraz korzystaj\u0105 ze zintegrowanego dekodera. Kodek Floating-point bitsplit zyska\u0142 specjalne kodery i dekodery dla format\u00f3w fp16, fp32, fp64 i bf16 z wyspecjalizowanymi przyspieszeniami. Dodano podzia\u0142 z uwzgl\u0119dnieniem zakresu (split_byrange), multiplexer d\u0142ugo\u015bci, kodek sentinel, grafik\u0119 lz4 oraz ma\u0142e funkcje pomocnicze, takie jak tryParseInt i splitByParam.<\/li>\n<li>API zosta\u0142o uporz\u0105dkowane.<\/li>\n<li>Poprawione testy fuzzingowe.<\/li>\n<li>Poprawiono proces budowy i pakowania dla wi\u0119kszej liczby platform.<\/li>\n<\/ul>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.linux.org.ru\/news\/opensource\/18286976\">linux.org.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0441\u0435\u043c\u0438 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0441\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0432\u044b\u043f\u0443\u0441\u043a 0.2.0 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 OpenZL, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c. \u0424\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0441\u043e\u0441\u0442\u043e\u0438\u0442 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 SDDL. \u0414\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u0430 \u0435\u0441\u0442\u044c \u0434\u0432\u0430 \u044d\u0442\u0430\u043f\u0430: \u0410\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0438\u0437\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0445\u043e\u0440\u043e\u0448\u0438\u0445 \u0431\u044d\u043a\u0435\u043d\u0434-\u043a\u043e\u043c\u043f\u0440\u0435\u0441\u0441\u043e\u0440\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u0445\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0441\u0436\u0430\u0442\u0438\u044f. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":170619,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-170618","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\".\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/news\/openzl-0-2-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47OpenZL 0.2.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\".\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/openzl-0-2-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-05-11T16:24:53+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-05-11T16:24:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47OpenZL 0.2.0 | ProHoster","description":".","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/openzl-0-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47OpenZL 0.2.0 | ProHoster","og:description":".","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/openzl-0-2-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-05-11T16:24:53+00:00","article:modified_time":"2026-05-11T16:24:53+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/170618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=170618"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/170618\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/170619"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=170618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=170618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=170618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}