Comments (8)
Here is the good reference in a closer (to OCaml) language (Rust) - https://github.com/gendx/lzma-rs/tree/master/src/decode
from decompress.
ocaml-lzma
and most of the other "OCaml" libraries that deal with compression that I've encountered so far (apart from decompress
) are simply thin bindings to C implementations, so it is not just a simple case of salvaging the old OCaml code; you have to rewrite the compression/decompression algorithms from scratch. :(
Do we have a list of use cases where a LZMA implementation could come in handy?
from decompress.
@cfcs I was using Ctypes bindings to the liblzma until I realized (by pain and blood) that xz-utils are not thread safe and crash all the time. Then I switch to writing OCaml bindings for LZMA SDK from 7zip, but those are a mess do deal with (mainly by API sense). I even searched for Rust implementation of LZMA (to wrap in OCaml bindings) but it turned out incomplete and unusable: https://github.com/meh/rust-lzma
from decompress.
Right, but where is LZMA needed?
from decompress.
This compression format is very popular.
from decompress.
I put it (a long time ago) in my TODO list. Currently, I need to finish some side projects but I will clearly take care about that soon precisely because I need:
- rewrite some parts of
decompress
- make a release of it with
gzip
support - optimize process
from decompress.
I have a simple bindings for 7-Zip SDK in OCaml, might be some source of information too, especially regarding some arcane peculiarities: https://github.com/XVilka/ocaml-lzma_7z
from decompress.
In case there will be some interest, there are some test files to check against: https://github.com/xz-mirror/xz/tree/master/tests/files
from decompress.
Related Issues (20)
- Explain `i_rem`
- Brotli support
- Compression support HOT 1
- ocamlformat uses one column about static int array HOT 2
- Provide the stream API on the C side
- decompress 1.3.0 tests fail to build due to bigarry pulling in dune HOT 2
- Include an even-higher level interface? HOT 6
- Exception raised when flushing buffers HOT 9
- lto1: fatal error: bytecode stream in file ‘~/.opam/default/lib/checkseum/c/libcheckseum_c_stubs.a’ generated with LTO version 9.2 instead of the expected 9.4 HOT 2
- Buffer overflow in De.Inf.Ns.inflate HOT 9
- Unable to build benchmark locally HOT 2
- ZSTD support
- Fix for OCaml 4.08
- Find the data end without actual unpacking HOT 4
- Gzip support HOT 1
- bin/pipe.ml isn't fixed for the new API
- Index out of bounds in de.ml HOT 2
- Library "decompress" not found with dune.2.5.1 and Multicore OCaml 4.10.0 HOT 3
- Read 2 bytes per 2 bytes instead 1 and 1 byte. HOT 1
- Non full-stream interface HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from decompress.