sergey-dryabzhinsky / python-zstd

Simple python bindings to Yann Collet ZSTD compression library
BSD 2-Clause "Simplified" License
165 stars 27 forks source link

Support frame format #13

Closed gyscos closed 7 years ago

gyscos commented 8 years ago

ZSTD has 2 formats:

I may have missed it, but I didn't find a way to decompress frame format using this library, or to compress a file into a frame format.

sergey-dryabzhinsky commented 8 years ago

Yes, this python wrapper support simpliest block format.

If you mean streaming API - not in current version. May be later. Or someone help with that.

Cyan4973 commented 8 years ago

Hi @sergey-dryabzhinsky

According to : https://github.com/indygreg/python-zstandard#comparison-to-other-python-bindings

it seems this python wrapper generates its own compressed format, thanks to a custom header. The claim looks supported by : https://github.com/sergey-dryabzhinsky/python-zstd/blob/master/src/python-zstd.c#L88

Note that there is nothing wrong with creating one's own format. Just, a downside is that files created with a custom header won't be decodable by 3rd party decompressor expecting to read zstd frame format.

Reason I'm asking is that, similar to lz4, I wish to list bindings within 2 categories, interoperable and custom format, and I need to list your binding in the correct category.

Regards

sergey-dryabzhinsky commented 8 years ago

Hi, @Cyan4973 Yes, it is. For now this wrapper should be listed as "custom format" and not feature-full.

I'll try to make it more interoperable in near future.

sergey-dryabzhinsky commented 7 years ago

@Cyan4973 As of v1.0.0.99.1 this wrapper uses raw Zstd frame format. No custom header by default. And it is still simple - no streaming, no dict support.

sergey-dryabzhinsky commented 7 years ago

There is no changes in support of streaming in the future. I close this.