package hxd

  1. Overview
  2. Docs
Hexdump in OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

hxd-v0.3.0.tbz
sha256=238b86af6cb7c540b08f9da436cedafc07677e4c6492b7ba9bf5892a55a862a2
sha512=55e9e149460d26fe62b7fee21c0c905d0f1efa89f0c48cc9098d20614b96315cdbfeb3305db3894c52e1d745901c9e049ba0d8c07da501e5e627630f1b972910

Description

Please, help me to debug ocaml-git

Published: 03 Mar 2021

README

hxd - HeX Dump in OCaml

hxd is a little program to output a hexdump of a // or a binary file. The main difference with xxd is to color outputs to be more fancy to read. Then, it provides a way to generate a Caml code which is a dump of inputs. This project was mostly done to be able to integrate dump of some sources (like ngrep) to an OCaml code - like dump of a smart flow (git protocol) to be able to write easily regression tests with small examples.

For a long time, I worked on several formats and protocols and it always a pain to read dump of something which is only machine-comprehensible. As a MirageOS project, core library is agnostic to the system.

hxd provides several ways to dump a source:

  • lib/ is the core library which needs only bigarray

  • lib_lwt/ is a library which can be used in a LWT context

  • lib_lwt_unix/ uses Lwt_io.channel

  • lib_string/ needs only OCaml and bigarray and provides a pretty-printer function

  • lib_unix/ uses unix module

Examples

With:

$ hxd.xxd --color=always dump

Or a Caml output with $ hxd.caml --with-comments dump:

[
; "\x78\x01\x4b\xca\xc9\x4f\x52\x30\x35\x60\xd0\x48\xad\x48\x4d\x2e" (* x.K..OR05`.H.HM. *)
; "\x2d\x49\x4c\xca\x49\xe5\x52\xd0\xc8\x4b\xcc\x4d\x55\x48\x2b\xad" (* -IL.I.R..K.MUH+. *)
; "\xaa\xd2\x04\x72\x72\x32\x93\x8a\x12\x8b\x32\x53\x8b\x15\x32\x2a" (* ...rr2....2S..2. *)
; "\x52\x14\x92\x8b\xf2\xcb\x93\x12\x8b\x34\x35\x01\x2c\x48\x13\x4f" (* R........45.,H.O *)
]

Repository has an OPAM package, so:

$ opam pin add hxd https://github.com/dinosaure/hxd.git

is enough to get this fabulous binary.

Dependencies (4)

  1. cmdliner < "1.1.0"
  2. dune-configurator >= "2.7"
  3. dune >= "2.7"
  4. ocaml >= "4.06.0"

Dev Dependencies

None

Used by (5)

  1. carton >= "0.3.0" & < "0.4.4"
  2. git-kv
  3. miou
  4. mrmime >= "0.4.0"
  5. spoke

Conflicts

None