Skip to content

3.0.0

Compare
Choose a tag to compare
@dinosaure dinosaure released this 05 Aug 13:21
· 14 commits to main since this release

CHANGES:

  • Fix Header.marshal and the checksum and the length (@reynir, #145)

  • Delete a mutable field about the level into the header (@hannesm, #141)

  • BREAKING: de-functorize the package (@hannesm, @reynir, @dinosaure, #140, #143, #146)

    These PRs attempt to de-functorize Tar so that users can implement I/O
    themselves, using Tar's own element serialization/deserialization functions
    to take advantage of read/write methods. This avoids imposing on the user the
    implementation of a module that is too rigid in his/her case (which could have
    performance implications).

    Tar offers functions for serializing/deserializing tar-specific elements
    from string. It is then up to the user to know how to obtain or write these
    strings.

    To this, these PRs add "logics" (see 'a Tar.t) requiring read and/or write
    implementations and describing how to extract all entries from a tar file or
    how to write a tar file according to a "dispenser" (like Seq.to_dispenser)
    of entries.

    These logics do not depend on a particular "scheduler", and these PRs propose
    a derivation of these logics with tar-unix, tar-eio and tar-mirage.
    These latter derivations mean that the API for these packages has only been
    extended, and there are no breaking changes as such.

    These logics also make it easy to offer a compression/decompression layer with
    decompress, so you can easily manipulate and/or create a .tar.gz file.