package ipaddr

  1. Overview
  2. Docs
A library for manipulation of IP (and MAC) address representations

Install

Dune Dependency

Authors

Maintainers

Sources

ipaddr-5.6.0.tbz
sha256=9e30433fdb4ca437a6aa8ffb447baca5eba7615fb88e7b0cd8a4b416c3208133
sha512=66a3bedfd91dacd6c1de9ba35abac3ef2ad3c2c8543f7b4e2a0cc6283a8d42138b48d02e904df0232ee9f320920e889bddbbda9a5148c5c6b72fd0164e0c6a34

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.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 (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
  • Macaddr is a Map.OrderedType
  • All types have sexplib serializers/deserializers

Tags

org:mirage org:xapi-project

Published: 24 May 2024

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.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

Dependencies (4)

  1. domain-name >= "0.3.0"
  2. macaddr = version
  3. dune >= "1.9.0"
  4. ocaml >= "4.08.0"

Dev Dependencies (2)

  1. ppx_sexp_conv with-test & >= "v0.9.0"
  2. ounit2 with-test

Used by (100)

  1. albatross
  2. arp >= "2.1.0"
  3. builder-web
  4. capnp-rpc-unix >= "2.0"
  5. caqti >= "2.0.1"
  6. caqti-async >= "2.1.1"
  7. caqti-driver-pgx >= "2.1.1"
  8. caqti-lwt >= "2.1.1"
  9. caqti-mirage >= "2.1.1"
  10. charrua >= "1.2.2"
  11. charrua-client >= "1.1.0"
  12. charrua-client-lwt >= "0.11.1"
  13. charrua-client-mirage
  14. charrua-server < "1.1.0" | >= "1.2.2"
  15. charrua-unix = "0.6" | >= "1.4.0"
  16. cohttp-async >= "3.0.0"
  17. colombe
  18. conduit >= "1.5.0"
  19. conduit-async >= "1.4.0" & != "3.0.0"
  20. conduit-lwt-unix >= "1.5.0"
  21. conduit-mirage != "3.0.0"
  22. corosync
  23. current-albatross-deployer
  24. dkim >= "0.2.0"
  25. dns >= "0.8.0" & < "0.10.0" | >= "1.1.3"
  26. dns-cli
  27. dns-client < "7.0.0" | >= "8.0.0"
  28. dns-client-lwt
  29. dns-client-miou-unix
  30. dns-client-mirage
  31. dns-mirage
  32. eliom >= "4.0.0"
  33. emile
  34. frenetic >= "3.2.0"
  35. git >= "3.0.0"
  36. git-mirage >= "3.0.0"
  37. git-paf
  38. git-unix >= "3.0.0"
  39. happy-eyeballs
  40. happy-eyeballs-lwt
  41. happy-eyeballs-miou-unix
  42. happy-eyeballs-mirage
  43. ip2location
  44. ipaddr-cstruct >= "5.6.0"
  45. ipaddr-sexp >= "5.6.0"
  46. irmin-client
  47. jitsu
  48. learn-ocaml >= "0.12" & < "0.14.0"
  49. learn-ocaml-client < "0.13.0"
  50. mbr-format < "1.0.0"
  51. mehari-mirage
  52. metrics-mirage
  53. miou
  54. mirage >= "0.10.0" & < "2.9.0" | >= "3.8.0"
  55. mirage-block-xen >= "1.1.0" & < "2.0.0"
  56. mirage-bootvar-xen < "0.4.0"
  57. mirage-conduit >= "3.2.0"
  58. mirage-console-xen-cli
  59. mirage-entropy-unix < "0.2.0"
  60. mirage-entropy-xen < "0.2.0"
  61. mirage-nat < "1.2.0" | >= "2.2.2"
  62. mirage-net-fd
  63. mirage-net-xen >= "2.1.4"
  64. mirage-protocols >= "4.0.0"
  65. mirage-protocols-lwt >= "1.4.1"
  66. mirage-qubes-ipv4 >= "0.6.1"
  67. mirage-runtime >= "3.8.0"
  68. mirage-stack-lwt
  69. mirage-types-lwt < "3.7.1"
  70. mirage-unix >= "0.9.4" & < "0.9.9"
  71. mirage-vnetif >= "0.4.1"
  72. mirage-vnetif-stack
  73. mirage-www >= "1.1.0"
  74. mirage-xen >= "0.9.5" & < "0.9.9"
  75. mirari >= "0.9.6"
  76. mrmime
  77. mrt-format >= "0.3.0"
  78. nanomsg
  79. netchannel >= "1.8.1"
  80. ocsigenserver >= "2.4.0"
  81. octez-libs
  82. paf >= "0.0.2" & < "0.0.4"
  83. paf-cohttp
  84. pcap-format = "0.4.0"
  85. pf-qubes
  86. pgx >= "1.0"
  87. piaf >= "0.2.0"
  88. sendmail-lwt >= "0.10.0"
  89. tcpip >= "3.6.0"
  90. tezos-base >= "8.0"
  91. tezos-stdlib-unix
  92. tls >= "0.15.0"
  93. tuntap >= "2.0.0"
  94. uspf
  95. vchan >= "0.9.6" & < "2.0.0"
  96. vhd-format >= "0.7.0" & < "0.9.1"
  97. vpnkit
  98. websocket-lwt
  99. x509 = "0.7.0" | >= "0.15.0"
  100. xentropyd

Conflicts

None

OCaml

Innovation. Community. Security.