{"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\/pt\/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>Ap\u00f3s sete meses de desenvolvimento, foi lan\u00e7ado o framework 0.2.0 <a rel=\"nofollow\" href=\"https:\/\/openzl.org\">OpenZL<\/a>, destinado \u00e0 cria\u00e7\u00e3o de compress\u00f5es de dados sem perdas.<\/p>\n<p><\/noindex> <\/p>\n<p>O framework consiste em uma biblioteca b\u00e1sica e ferramentas para criar compress\u00f5es especializadas, descritas na linguagem <a rel=\"nofollow\" href=\"https:\/\/openzl.org\/sddl\">SDDL<\/a>.<br \/> Para criar uma boa compress\u00e3o especializada, existem duas etapas:<\/p>\n<ol>\n<li>An\u00e1lise de dados para extrair a estrutura.<\/li>\n<li>Uso de bons compress\u00f5es backend, que utilizam a estrutura obtida para alcan\u00e7ar uma boa compacta\u00e7\u00e3o.<\/li>\n<\/ol>\n<p>OpenZL fornece ferramentas para ambas as etapas.<\/p>\n<p>O projeto \u00e9 escrito nas linguagens C e C++ e \u00e9 distribu\u00eddo sob a licen\u00e7a BSD.<\/p>\n<h5>Principais mudan\u00e7as<\/h5>\n<p><strong>SDDL2<\/strong><\/p>\n<p>O SDDL foi completamente refeito do zero para atingir os objetivos de design estabelecidos. Enquanto a vers\u00e3o de demonstra\u00e7\u00e3o inicial representava um ambiente de execu\u00e7\u00e3o simplificado, o SDDL2 \u00e9 um compilador completo: o analisador sint\u00e1tico passa os dados para o analisador sem\u00e2ntico, que, por sua vez, fornece a \u00e1rvore de sintaxe abstrata (AST) tipificada para o otimizador, e o otimizador gerencia o gerador de c\u00f3digo, que gera bytecode para a m\u00e1quina virtual.<\/p>\n<p>O resultado chave \u00e9 a an\u00e1lise sint\u00e1tica instant\u00e2nea. Quando a localiza\u00e7\u00e3o do registro pode ser completamente determinada apenas por par\u00e2metros e constantes, o mecanismo vai diretamente a qualquer campo, sem escanear os bytes anteriores, garantindo acesso sem c\u00f3pia e largura de banda de v\u00e1rios GB\/s.<\/p>\n<p>A pr\u00f3pria linguagem evoluiu juntamente com o conjunto de ferramentas. Agora, ela suporta blocos when para locais condicionais, registros parametrizados e an\u00f4nimos, acesso aos membros dos campos de registro, bem como operadores bit a bit e l\u00f3gicos.<\/p>\n<p>Quanto \u00e0 conveni\u00eancia do desenvolvedor, a fase de an\u00e1lise sem\u00e2ntica agora identifica refer\u00eancias indefinidas, incompatibilidades de tipo e erros de aridade na fase de compila\u00e7\u00e3o - com a localiza\u00e7\u00e3o indicada no c\u00f3digo-fonte - e n\u00e3o em tempo de execu\u00e7\u00e3o. Tamb\u00e9m foi lan\u00e7ado uma extens\u00e3o para o VS Code para realce de sintaxe em arquivos .sddl.<\/p>\n<p><strong>Novo codec LZ embutido<\/strong><\/p>\n<p>Agora, o OpenZL inclui seu pr\u00f3prio codec LZ, representado como ZL_GRAPH_LZ, al\u00e9m de um perfil de compress\u00e3o sequencial na ferramenta zli. O trabalho no codec continua: est\u00e1 em andamento a expans\u00e3o do conjunto de fun\u00e7\u00f5es e o aumento da performance no processamento de pequenas entradas. Neste momento, ele suporta funcionalidades equivalentes ao zstd n\u00edvel 1, com um tamanho de janela de compress\u00e3o de 64 KB.<\/p>\n<p> <noindex><\/p>\n<p>O OpenZL permite redesenhar cada etapa do pipeline LZ para aumentar a velocidade. Sua arquitetura gr\u00e1fica tamb\u00e9m permite combinar etapas de codifica\u00e7\u00e3o de entropia, em vez de usar um \u00fanico pipeline que funcione bem para todos os cen\u00e1rios de uso. Em seguida, v\u00e1rias etapas podem ser combinadas em uma \u00fanica opera\u00e7\u00e3o para aumentar a velocidade do processamento. Isso permite que o OpenZL forne\u00e7a uma velocidade de compress\u00e3o 10% maior e uma velocidade de descompress\u00e3o 70% maior em compara\u00e7\u00e3o com o Zstandard n\u00edvel 1 no conjunto de Silesia em <a rel=\"nofollow\" href=\"https:\/\/gist.github.com\/terrelln\/412cda99d1e54126477219cacf38c971\">nossos testes<\/a>:<\/p>\n<p><\/noindex> <\/p>\n<table>\n<thead>\n<tr>\n<th><strong>Compressor<\/strong><\/th>\n<th><strong>Taxa de Compress\u00e3o<\/strong><\/th>\n<th><strong>Velocidade de Compress\u00e3o<\/strong><\/th>\n<th><strong>Velocidade de Descompress\u00e3o<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>OpenZL LZ n\u00edvel 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 n\u00edvel 1 com tamanho de janela de 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 n\u00edvel 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>Suporte a entradas muito grandes<\/strong><\/p>\n<p>O zli agora suporta o processamento de grandes conjuntos de dados de entrada (com volume de v\u00e1rios gigabytes). Antes da compacta\u00e7\u00e3o, esses dados agora s\u00e3o automaticamente fragmentados em partes de tamanho gerenci\u00e1vel (por padr\u00e3o, cerca de 16MB), o que ajuda a limitar o uso de mem\u00f3ria, melhorar a localidade dos dados e abre possibilidades para processamento paralelo. No SDDL2, foi implementada uma fun\u00e7\u00e3o semelhante de fragmenta\u00e7\u00e3o autom\u00e1tica ao trabalhar em esquema. Foram criados ou atualizados novos segmentadores - para CSV, Parquet e dados num\u00e9ricos padr\u00e3o - e todos os segmentadores agora s\u00e3o serializ\u00e1veis e configur\u00e1veis, de modo que a configura\u00e7\u00e3o escolhida possa ser salva no compressor e reutilizada posteriormente.<\/p>\n<p>Isso \u00e9 aplicado de forma transparente durante a compress\u00e3o. Observe que o pipeline de aprendizado \u00e9 diferente e permanece inalterado, portanto, n\u00e3o \u00e9 destinado a receber enormes entradas como material de treino.<\/p>\n<p><strong>Melhorias no visualizador online de gr\u00e1ficos (<a rel=\"nofollow\" href=\"https:\/\/openzl.org\/tools\/trace\">tentar<\/a>)<\/strong><br \/> Agora, o visualizador reconhece rastreamentos de compress\u00e3o e descompress\u00e3o do in\u00edcio ao fim.<\/p>\n<p>O painel de visualiza\u00e7\u00e3o de fluxo permite visualizar os bytes que realmente passam por cada aresta, e com os controles de recorte, at\u00e9 mesmo fluxos grandes permanecem gerenci\u00e1veis.<\/p>\n<p>O painel de configura\u00e7\u00f5es re\u00fane todas as op\u00e7\u00f5es de exibi\u00e7\u00e3o em um s\u00f3 lugar, e o conjunto completo de teclas de atalho - navega\u00e7\u00e3o direcional, busca ordenada, expans\u00e3o e colapso, sele\u00e7\u00e3o de n\u00f3s - permite trabalhar com a ferramenta de forma conveniente sem mouse.<\/p>\n<p>Agora, as trilhas possuem vers\u00f5es, a compress\u00e3o com particionamento \u00e9 exibida corretamente, e o zli finalmente pode gerar suas pr\u00f3prias trilhas usando as novas flags -trace e -trace-streams-dir.<\/p>\n<p><strong>Diversos<\/strong><\/p>\n<ul>\n<li>Adicionados v\u00e1rios codecs ao cat\u00e1logo. Os codecs Partition e bitpack agora usam um decodificador unificado. O codec Floating-point bitsplit recebeu codificadores e decodificadores especiais para os formatos fp16, fp32, fp64 e bf16 com acelera\u00e7\u00f5es especializadas. Adicionadas divis\u00f5es com considera\u00e7\u00e3o de intervalo (split_byrange), multiplexador de comprimento, codec sentinel, gr\u00e1fico lz4 e pequenas fun\u00e7\u00f5es auxiliares, como tryParseInt e splitByParam.<\/li>\n<li>API ordenada.<\/li>\n<li>Melhorado o teste de fuzzing.<\/li>\n<li>Melhorado o processo de constru\u00e7\u00e3o e empacotamento para um maior n\u00famero de plataformas.<\/li>\n<\/ul>\n<p>Fonte: <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.3 - 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\/pt\/blog\/news\/openzl-0-2-0\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\/pt\/blog\/news\/openzl-0-2-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/170618","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=170618"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/170618\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/170619"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=170618"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=170618"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=170618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}