You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Readme.md
+32-5Lines changed: 32 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,22 +15,49 @@ This crate is currently actively maintained.
15
15
16
16
# Current Status
17
17
18
-
Feature complete on the decoder side.
18
+
## Decompression
19
+
The `decoding` module provides a complete
20
+
implementation of a Zstandard decompressor.
21
+
22
+
In terms of speed, `ruzstd` is behind the original C implementation
23
+
which has a rust binding located [here](https://github.com/gyscos/zstd-rs).
19
24
25
+
Measuring with the 'time' utility the original zstd and my decoder both
26
+
decoding the same enwik9.zst file from a ramfs, my decoder is about 3.5
27
+
times slower. Enwik9 is highly compressible, for less compressible data
28
+
(like a ubuntu installation .iso) my decoder comes close to only being
29
+
1.4 times slower.
30
+
31
+
## Compression
20
32
On the compression side:
21
33
- Support for generating compressed blocks at any compression level
22
34
-[x] Uncompressed
23
35
-[x] Fastest (roughly level 1)
24
36
-[ ] Default (roughly level 3)
25
37
-[ ] Better (roughly level 7)
26
38
-[ ] Best (roughly level 11)
27
-
-[] Checksums
39
+
-[x] Checksums
28
40
-[ ] Dictionaries
29
41
30
-
## Speed
31
-
In terms of speed this library is behind the original C implementation which has a rust binding located [here](https://github.com/gyscos/zstd-rs).
42
+
## Dictionary Generation
43
+
When the `dict_builder` feature is enabled, the `dictionary` module
44
+
provides the ability to create new dictionaries.
45
+
46
+
On the `github-users` sample set, our implementation benchmarks within
47
+
0.2% of the official implementation (as of commit
48
+
`09e52d07340acdb2e13817b066e8be6e424f7258`):
49
+
```
50
+
uncompressed: 100.00% (7484607 bytes)
51
+
no dict: 34.99% of original size (2618872 bytes)
52
+
reference dict: 16.16% of no dict size (2195672 bytes smaller)
53
+
our dict: 16.28% of no dict size (2192400 bytes smaller)
54
+
```
55
+
56
+
The dictionary generator only provides support for creating "raw
57
+
content" dictionaries. Tagged dictionaries are currently unsupported.
32
58
33
-
Measuring with the 'time' utility the original zstd and my decoder both decoding the same enwik9.zst file from a ramfs, my decoder is about 3.5 times slower. Enwik9 is highly compressible, for less compressible data (like a ubuntu installation .iso) my decoder comes close to only being 1.4 times slower.
59
+
See <https://github.com/facebook/zstd/blob/dev/doc/zstd_compression_format.md#dictionary-format>
0 commit comments