package tar-mirage

  1. Overview
  2. Docs
Read and write tar format files via MirageOS interfaces

Install

Dune Dependency

Authors

Maintainers

Sources

tar-mirage-v2.0.0.tbz
sha256=0b204f1f565cf762d89ebfbb5a7823e53acaa57834fa3fb5944399367afc4a29
sha512=83c8a214cb9ad1987d062b3503089ab0492e2ec3d3636d54e20f8b73733e40a618190aeae0498d71fdc3fa9c42e6f08b1b31acefdeb1be60419cd37fd86e7f4e

Description

tar is a simple library to read and write tar files with an emphasis on streaming. This library is functorised over external OS dependencies to facilitate embedding within MirageOS.

Tags

org:xapi-project org:mirage

Published: 15 Oct 2021

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

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 (10)

  1. tar = version
  2. re >= "1.7.2"
  3. ptime
  4. mirage-kv >= "3.0.0" & < "5.0.0"
  5. mirage-block
  6. lwt
  7. io-page
  8. cstruct >= "1.9.0"
  9. ocaml >= "4.08.0"
  10. dune >= "2.9"

Dev Dependencies (6)

  1. odoc with-doc
  2. tar-unix with-test & = version
  3. ounit2-lwt with-test
  4. ounit2 with-test
  5. mirage-block-unix with-test & >= "2.5.0"
  6. io-page-unix with-test

Used by

None

Conflicts

None

OCaml

Innovation. Community. Security.