Skip to content

mirage/ocaml-ipaddr

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

ipaddr: IP and MAC address manipulation

A library for manipulation of IP and MAC address representations.

Features:

  • ounit2-based tests
  • IPv4 and IPv6 support
  • IPv4 and IPv6 CIDR prefix support
  • IPv4 and IPv6 CIDR-scoped address support
  • Ipaddr.V4 and Ipaddr.V4.Prefix modules are Map.OrderedType
  • Ipaddr.V6 and Ipaddr.V6.Prefix modules are Map.OrderedType
  • Ipaddr and Ipaddr.Prefix modules are Map.OrderedType
  • Ipaddr_unix in findlib subpackage ipaddr.unix provides compatibility with the standard library Unix module
  • Ipaddr_top in findlib subpackage ipaddr.top provides top-level pretty printers
  • IP address scope classification
  • IPv4-mapped addresses in IPv6 (::ffff:0:0/96) are an embedding of IPv4
  • MAC-48 (Ethernet) address support
  • Macaddr is a Map.OrderedType
  • All types have sexplib serializers/deserializers optionally via the Ipaddr_sexp and Macaddr_sexp libraries.

Usage

There are the following opam packages included:

  • ipaddr: the Ipaddr and associated modules
  • ipaddr-sexp
  • ipaddr-cstruct
  • macaddr: the Macaddr and associated modules.
  • macaddr-sexp
  • macaddr-cstruct

There are the following ocamlfind libraries included as part of this repository, included as part of the respective opam packages.

  • ipaddr: The Ipaddr module for IPv4/6 manipulation.
  • ipaddr.top: Toplevel printers for Ipaddr.
  • ipaddr-cstruct: The Ipaddr_cstruct module
  • macaddr: The Macaddr module for MAC address manipulation.
  • macaddr.top: Toplevel printers for Macaddr.
  • macaddr-cstruct: The Macaddr_cstruct module
  • ipaddr-sexp: S-expression converters for Ipaddr.
  • macaddr-sexp: S-expression converters for Macaddr.

Installation and development

The packages are released to the opam-repository. An opam install ipaddr (or any other above mentioned package) will install it. If you want to install the latest development commit, opam pin add ipaddr --dev will do this.

A local build, after a git clone can be done with dune build, a dune runtest compiles and executes the testsuite. If dependencies are missing, opam install (-t) --deps-only . in the cloned directory will install them.

The auto-formatter ocamlformat is used, please execute dune build @fmt --auto-promote before submitting a pull request.

Contact