tar-mirage

Read and write tar format files via MirageOS interfaces
README

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 = ...};
 ...]

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.

Install
Published
15 Oct 2021
Maintainers
Sources
tar-mirage-v2.0.0.tbz
sha256=0b204f1f565cf762d89ebfbb5a7823e53acaa57834fa3fb5944399367afc4a29
sha512=83c8a214cb9ad1987d062b3503089ab0492e2ec3d3636d54e20f8b73733e40a618190aeae0498d71fdc3fa9c42e6f08b1b31acefdeb1be60419cd37fd86e7f4e
Dependencies
odoc
with-doc
tar-unix
with-test & = version
ounit2-lwt
with-test
ounit2
with-test
mirage-block-unix
with-test & >= "2.5.0"
io-page-unix
with-test
tar
= version
re
>= "1.7.2"
mirage-kv
>= "3.0.0"
cstruct
>= "1.9.0"
ocaml
>= "4.08.0"
dune
>= "2.9"
Reverse Dependencies