package ipaddr
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=1e617df8abd45843c823e9be75267d27426cb578661cf25622d50b25ae14a319
sha512=09c37f963d27f697ee17b83f26364002cc2e60516c2199f78cd20663aaf293a1ce4380d728641b4c9b79066dc814c8f9293722a567ce6898261c4e98b34d80c2
Description
Features:
- Depends only on sexplib (conditionalization under consideration)
- ounit2-based tests
- IPv4 and IPv6 support
- IPv4 and IPv6 CIDR prefix support
- IPv4 and IPv6 CIDR-scoped address support
Ipaddr.V4andIpaddr.V4.Prefixmodules areMap.OrderedTypeIpaddr.V6andIpaddr.V6.Prefixmodules areMap.OrderedTypeIpaddrandIpaddr.Prefixmodules areMap.OrderedTypeIpaddr_unixin findlib subpackageipaddr.unixprovides compatibility with the standard libraryUnixmoduleIpaddr_topin findlib subpackageipaddr.topprovides top-level pretty printers (requires compiler-libs default since OCaml 4.0)- IP address scope classification
- IPv4-mapped addresses in IPv6 (::ffff:0:0/96) are an embedding of IPv4
- MAC-48 (Ethernet) address support
Macaddris aMap.OrderedType- All types have sexplib serializers/deserializers
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 support
Ipaddr.V4andIpaddr.V4.Prefixmodules areMap.OrderedTypeIpaddr.V6andIpaddr.V6.Prefixmodules areMap.OrderedTypeIpaddrandIpaddr.Prefixmodules areMap.OrderedTypeIpaddr_unixin findlib subpackageipaddr.unixprovides compatibility with the standard libraryUnixmoduleIpaddr_topin findlib subpackageipaddr.topprovides 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
Macaddris aMap.OrderedType- All types have sexplib serializers/deserializers optionally via the
Ipaddr_sexpandMacaddr_sexplibraries.
Usage
There are the following opam packages included:
ipaddr: theIpaddrand associated modulesipaddr-sexpipaddr-cstructmacaddr: theMacaddrand associated modules.macaddr-sexpmacaddr-cstruct
There are the following ocamlfind libraries included as part of this repository, included as part of the respective opam packages.
ipaddr: TheIpaddrmodule for IPv4/6 manipulation.ipaddr.top: Toplevel printers for Ipaddr.ipaddr-cstruct: TheIpaddr_cstructmodulemacaddr: TheMacaddrmodule for MAC address manipulation.macaddr.top: Toplevel printers for Macaddr.macaddr-cstruct: TheMacaddr_cstructmoduleipaddr-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
- Issues: https://github.com/mirage/ocaml-ipaddr/issues
- E-mail: mirageos-devel@lists.xenproject.org
- API Documentation: http://docs.mirage.io/ipaddr/
- Discussion: https://discuss.ocaml.org with the
mirageostag.
Dependencies (4)
-
domain-name
>= "0.3.0" -
macaddr
= version -
dune
>= "1.9.0" -
ocaml
>= "4.08.0"
Dev Dependencies (2)
-
ppx_sexp_conv
with-test & >= "v0.9.0" -
ounit2
with-test
Used by (81)
- albatross
- arp
- builder-web
-
capnp-rpc-unix
>= "2.1" -
caqti
>= "2.0.1" -
caqti-async
>= "2.1.1" -
caqti-driver-pgx
>= "2.1.1" -
caqti-lwt
>= "2.1.1" -
caqti-mirage
>= "2.1.1" - charrua
- charrua-client
- charrua-server
- charrua-unix
-
cohttp-async
>= "4.1.2" -
cohttp-lwt
>= "6.1.0" - colombe
-
conduit
>= "1.5.0" - conduit-async
-
conduit-lwt-unix
>= "1.5.0" - conduit-mirage
- corosync
- current-albatross-deployer
- dkim
-
dns
>= "1.1.3" - dns-cli
-
dns-client
!= "7.0.3" - dns-client-lwt
- dns-client-miou-unix
- dns-client-mirage
- dns-mirage
-
dns-resolver
>= "10.2.1" - dream_middleware_ext
- eliom
- emile
- frenetic
-
git
>= "3.2.0" - git-mirage
- git-paf
-
git-unix
>= "3.2.0" - happy-eyeballs
- happy-eyeballs-lwt
- happy-eyeballs-miou-unix
- happy-eyeballs-mirage
- ip2location
- ip2proxy
-
ipaddr-cstruct
>= "5.6.1" -
ipaddr-sexp
>= "5.6.1" - irmin-client
-
learn-ocaml
< "0.14.0" -
letsencrypt-app
>= "1.1.0" - mehari-mirage
- miou
- mirage
- mirage-conduit
- mirage-nat
- mirage-net-xen
-
mirage-protocols
>= "7.0.0" - mirage-protocols-lwt
- mirage-qubes-ipv4
- mirage-runtime
- mirage-stack-lwt
- mirage-types-lwt
- mirage-vnetif
- mrmime
- ocsigenserver
- octez-libs
- paf-cohttp
-
pcap-format
< "0.5.2" - pf-qubes
-
pgx
>= "1.0" -
piaf
>= "0.2.0" -
sendmail-lwt
>= "0.10.0" - tcpip
- tezos-base
- tezos-stdlib-unix
-
tls
>= "0.15.2" - tuntap
- uspf
- vpnkit
- websocket-lwt
-
x509
= "0.7.0" | >= "0.15.0"
Conflicts
None