Biblioteca Go para compactação e descompactação paralela
API Golang para gerar programaticamente e ler arquivos GZIP padrão. Compacte arquivos grandes dividindo-os em blocos e execute a compactação/descompactação em paralelo.
pgzip é uma biblioteca de código aberto que fornece funcionalidade completa para compactação e descompactação paralela usando a linguagem Go. A biblioteca é muito útil para compactar uma grande quantidade de dados, pois é dividida em blocos e realiza compactação/descompactação em paralelo. A biblioteca pgzip é incrivelmente popular entre a comunidade de desenvolvedores e permite que os aplicativos Go leiam arquivos compactados diretamente com apenas alguns comandos.
A biblioteca é muito estável e permite que os desenvolvedores gerem programaticamente, bem como leiam arquivos GZIP padrão. Para obter o melhor da biblioteca, é recomendável usar compactar ou descompactar uma grande quantidade de dados (mais de 2 MB por vez). A biblioteca inclui suporte para vários recursos importantes, como compactar arquivos, descompactar arquivos, abrir e ler arquivos GZIP e muito mais.
Introdução ao pgzip
A maneira recomendada de instalar o pgzip é do GitHub, use o seguinte comando para uma instalação suave.
Instale o pgzip via comando
go get github.com/klauspost/pgzip/...
Compactar arquivos grandes via API Go
A biblioteca pgzip de código aberto incluiu funcionalidade para compactar grandes quantidades de arquivos de dados usando algumas linhas de código Go. A API suporta a divisão do arquivo grande em partes pequenas (por padrão, o tamanho do bloco é 1 MB) e pode ser processado até o número de threads da CPU. Você pode controlar facilmente o tamanho dos blocos, bem como personalizá-los de acordo com suas necessidades e quantos deseja que sejam processados em paralelo. Para obter melhores ganhos de desempenho, é aconselhável que os usuários comprimam pelo menos mais de 1 megabyte de dados por vez.
Descompactando arquivos via Go API
A biblioteca gratuita pgzip permite que os desenvolvedores de software descompactem seus arquivos dentro de seus próprios aplicativos Go. Assim como a compactação, a descompactação também pode ser realizada personalizando o tamanho do bloco. Você pode facilmente obter seu próprio leitor e especificar sua própria leitura com antecedência. Para o seu leitor, você precisa definir o tamanho do bloco e o número máximo de blocos que serão decodificados antecipadamente.
Melhoria de desempenho
O desempenho do pgzip pode ser melhorado em comparação com o gzip quando você tem grandes quantidades de dados. Como o pgzip processa blocos em paralelo, obviamente tem uma vantagem de velocidade sobre os outros compressores. O uso para material de alta taxa de transferência e alta compactação, como logs, JSON e dados CSV também pode ser útil. Uma grande vantagem do pgzip durante a descompactação é que ele permite que você faça outro trabalho enquanto a descompactação está ocorrendo.