软件简介

compress 的目标是提供 Go 语言除了标准库以外的其它纯粹、流行的压缩算法合集。

这些包的目标如下:

  • 可维护性:代码保持良好的文档,良好的测试,可读性,易于维护,并且易于验证它符合正在实现的格式的规范

  • 执行者:能够以 C 接口实现至少80%来压缩和解压缩

  • 灵活:代码提供相对低级和精细的压缩流

安装

运行命令

go get -u github.com/dsnet/compress

要求 Go1.5 或更高版本的库才能构建。

性能:

相对于 Go1.5 中的标准库:

BZip2 解压速度大约是 1.5x到3.0x
DEFLATE 解压大约是 1.5x到1.8x 甚至更快

相对于规范的C实现:

Brotli 解压速度约为 0.3x至0.5x
BZip2 压缩速度约为 0.4x到0.7x
BZip2 解压速度约为 0.8x至1.0x
DEFLATE 解压速度约为 0.5x到0.6x

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (2)

加载中
不能用
2019/08/25 23:01
回复
举报
怎么安装,向其他库一样?
2019/08/25 22:28
回复
举报
更多评论
暂无内容
发表于AI & 大数据专区
2019/09/27 17:38

PDF compress on CentOS

扫描出来的PDF文件都很大,8页12M+, 所以需要压缩. 本来想随便下载一个PDF工具,去做掉. 但是发现,大多数都收费. 也没仔细找免费工具. 去github上转了一圈,发现了一个项目,还不错. 原来12M的pdf文件, 压完了不超过3M. yum install ghostscript An interpreter for the PostScript language and for PDF. 2. compress-pdf https://github.com/jbenet/compress-pdf.git 挺简单的. 方便操作. compress-pdf filename outfilename...

0
0
发表了博客
2015/10/26 18:28

#30 Compress a Sequence

(= (apply str (__ "Leeeeeerrroyyy")) "Leroy") (= (__ [1 1 2 3 3 2 2 3]) '(1 2 3 2 3)) ```clojure #(map first (partition-by identity %)) ```

0
0
发表了博客
2019/08/15 13:36

CodeForces 1200E Compress Words

$C_n^m$的typora,点了一下启用源代码模式就把我已经写好的博客弄没了,就给我留个标题,自动保存也只给我保存了个标题……$C_n^m$,wdnmd <iframe src="https://vjudge.net/problem/description/118455" width="100%" height="900px" frameborder="0" scrolling="no" style="box-sizing: inherit; height: 1170.67px;"></iframe> - Time limit 1000 ms Memory limit 262144 kB 解题思路 KMP 打比赛的时候愣是想不到怎么用KMP,...

0
0
发表了博客
2019/12/23 14:54

C# GZip Compress DeCompress

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO.Compression; using System.IO; using System.Diagnostics; namespace ConsoleApp1 { class Program { static void Main(string[] args) { DecompressDemo(); Console.ReadLine(); } ...

0
0
发表了博客
2019/03/04 12:58

[codeforces]F. Compress String

  题解: SAM板子题 但是要做一个小dp   很显然 有个dp就是   $ dp[i]=min(dp[i],dp[j]+b) $若在子串[1,j-1]中子串[j,i]存在   那么我们就用SAM维护每个子串最早出现在字符串中的位置 然后check一下就行了 #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #include <vector> #include <stack> #include <queue> #include <cmath> #include <set> #include <map> #define mp ...

0
0
发表了博客
2019/08/12 15:04

E. Compress Words(Hash,KMP)

E. Compress Words time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Amugae has a sentence consisting of nn words. He want to compress this sentence into one word. Amugae doesn't like repetitions, so when he merges two words into one word, he removes the longest prefix of the second word that coincides with a suffix of the first word. Fo...

0
0
发表了博客
2010/12/21 12:15

compress的Z_BUF_ERROR错误

zlib是一个优秀的库,一般用到的只有两个函数: compress(...) uncompress(...) 写例子程序的时候,发现使用compress出现Z_BUF_ERROR错误, 在网上找了半天,也不知道个所以然,最后找到了原因,就是这个函数的 第二个参数,即是既作为输入,也作为输出。我在使用的时候指明这个参 数为零,间接表明压缩缓冲区为零,这样也就无法压缩了。 错误就是这样子 :-)

0
1
发表了博客
2019/04/07 12:59

Codeforces 1120C Compress String(DP)

题意:给你一个字符串,有2种消除方式:1:消除一个单独的字母,代价为a。2:s[j]到s[k]是s[1]到s[j - 1]的子串,那么s[j]到s[k]可以消除,代价为b,问最小的代价。 思路:官方题解说的很明白了。 代码: #include <bits/stdc++.h> #define LL long long #define INF 0x3f3f3f3f using namespace std; const int maxn = 5010; int dp[maxn]; int v[maxn][maxn]; int Next[maxn]; char s[maxn]; int n, a, b; int mai...

0
0
发表了博客
2019/03/04 01:56

CF1120 C. Compress String(SAM+DP)

有方程dp[i]=min(dp[i-1]+A,dp[j]+B);如果s[j+1,i]在s[i,j]中出现,所以我们就是要知道每个子串在s出现的第一个位置,这个可以hash实现或者sam,或者kmp实现。 pos[i][j]表示s[i,j]对应的sam的位置,occ[],表示第一次出现的位置。 #include<bits/stdc++.h> #define ll long long #define rep2(i,a,b) for(int i=a;i>=b;i--) #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; const int maxn=100010; ch...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于AI & 大数据专区
2019/06/06 14:13

  \"name\": 想把字符串里的 \去掉,应该java咋写?

"column":["1"]}},"writer":{"name":"hdfswriter","parameter":{"defaultFS":"2","fileType":"2","path":"2","fileName":"2","column":["{ \"name\": \"id\"","\"type\": \"string\" }","{ \"name\": \"risk_level\"","\"type\": \"string\" }","{ \"name\": \"device_uuid\"","\"type\": \"string\" }","{ \"name\": \"event_device_id\"","\"type\": \"string\" }","{ \"name\": \"device_type\"","\"type\": \"string\" }","...

7
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
2 评论
5 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部