Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mirage/ocaml-ipaddr
A library for manipulation of IP (and MAC) address representations
https://github.com/mirage/ocaml-ipaddr
ip-address ipv4 ipv6 mac-address ocaml
Last synced: 3 months ago
JSON representation
A library for manipulation of IP (and MAC) address representations
- Host: GitHub
- URL: https://github.com/mirage/ocaml-ipaddr
- Owner: mirage
- License: isc
- Created: 2013-07-24T17:57:50.000Z (over 11 years ago)
- Default Branch: main
- Last Pushed: 2024-05-22T10:06:59.000Z (8 months ago)
- Last Synced: 2024-09-29T06:41:10.170Z (4 months ago)
- Topics: ip-address, ipv4, ipv6, mac-address, ocaml
- Language: OCaml
- Homepage:
- Size: 1.27 MB
- Stars: 40
- Watchers: 20
- Forks: 24
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE.md
Awesome Lists containing this project
README
# 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](http://tools.ietf.org/html/rfc4291#section-2.3) 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`](https://github.com/ocaml-ppx/ocamlformat) is
used, please execute `dune build @fmt --auto-promote` before submitting a pull
request.## Contact
- Issues:
- E-mail:
- API Documentation:
- Discussion: with the `mirageos` tag.