package tar

  1. Overview
  2. Docs
Decode and encode tar format files in pure OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

tar-2.1.0.tbz
sha256=05cf662c9cfc3fc6cf1e04785b8f65c125df5a617686c4ee86567c59d219cf2c
sha512=ac0307d3d99c8335f40a86257b328fa78603a6d558477fd7802ec14802e308c8dcddca3ae6609be23e715b4e6e554c10e876f315e5fefa96632f5c992dc0b782

Description

tar is a simple library to read and write tar files with an emphasis on streaming.

This is pure OCaml code, no C bindings.

Tags

org:xapi-project org:mirage

Published: 31 Aug 2022

README

tar -- decode and encode tar files

tar is a simple library to read and write tar files with an emphasis on streaming.

This is pure OCaml code, no C bindings.

Installation

tar can be installed with opam:

opam install tar
opam install tar-unix    # for use in Unix/Lwt
opam install tar-mirage  # for use in MirageOS

If you don't use opam consult the tar.opam file for build instructions.

Example toplevel session

In utop:

utop # #require "tar";;
utop # #require "tar-unix";;

utop # let f = Lwt_unix.openfile "/tmp/foo.tar" [ Unix.O_RDONLY ] 0;;
val f : Lwt_unix.file_descr = <abstr>

utop # Lwt.bind f Tar_lwt_unix.Archive.list;;
[{Tar.Header.file_name = "_build/lib/tar.mli.depends";
  Tar.Header.file_mode = 420; Tar.Header.user_id = 1000;
  Tar.Header.group_id = 1000; Tar.Header.file_size = 21L;
  Tar.Header.mod_time = 1381080315L;
  Tar.Header.link_indicator = Tar.Header.Link.Normal;
  Tar.Header.link_name = ""};
 {Tar.Header.file_name = "_build/lib/tar_unix.mli.depends";
  Tar.Header.file_mode = 420; Tar.Header.user_id = 1000;
  Tar.Header.group_id = 1000; Tar.Header.file_size = 27L;
  Tar.Header.mod_time = 1381080318L;
  Tar.Header.link_indicator = Tar.Header.Link.Normal;
  Tar.Header.link_name = ""};
 {Tar.Header.file_name = "_build/lib/tar.mllib";
  Tar.Header.file_mode = ...; Tar.Header.user_id = ...;
  Tar.Header.group_id = ...; Tar.Header.file_size = ...;
  Tar.Header.mod_time = ...; Tar.Header.link_indicator = ...;
  Tar.Header.link_name = ...};
 ...]

Compressed tarball

The distribution gives a small implementation to create a tarball, a compressed archive. The software allows to list the contents of a given tarball. The compression is done with [decompress][decompress]. You can look at the project documentation for more information on how to compress.

Alternatively, it is possible to use the Tar_gz module which offers the same interface as Tar with compression.

Example users

This library is used by

  • xapi to read and write VM images

Documentation

The documentation and API reference is automatically generated by ocamldoc from the interfaces. It can be consulted online.

Dependencies (7)

  1. decompress >= "1.5.1"
  2. re >= "1.7.2"
  3. cstruct >= "6.0.0"
  4. ppx_cstruct build & >= "3.6.0"
  5. ocaml >= "4.08.0"
  6. camlp-streams
  7. dune >= "2.9"

Dev Dependencies (1)

  1. odoc with-doc

Used by (6)

  1. octez-shell-libs
  2. octez-smart-rollup-node-lib >= "19.0"
  3. tar-mirage = "2.1.0"
  4. tar-unix < "0.9.0" | = "2.1.0"
  5. tezos-store >= "13.0"
  6. vpnkit >= "0.1.1"

Conflicts

None

OCaml

Innovation. Community. Security.