opam-version: "2.0"
maintainer: "Hannes Mehnert <hannes@mehnert.org>"
authors: ["Hannes Mehnert <hannes@mehnert.org>"]
homepage: "https://github.com/hannesm/arp"
doc: "https://hannesm.github.io/arp/doc"
dev-repo: "git+https://github.com/hannesm/arp.git"
bug-reports: "https://github.com/hannesm/arp/issues"
license: "ISC"
depends: [
  "ocaml" {>= "4.02.0"}
  "ocamlfind" {build}
  "ocamlbuild" {build}
  "topkg" {build}
  "ppx_tools"
  "result"
  "cstruct" {>= "2.2.0" & <"3.4.0"}
  "ppx_cstruct" {<"3.4.0"}
  "ipaddr" {>= "2.2.0" & <"2.9.0"}
  "logs"
  "alcotest" {with-test}
  "nocrypto" {with-test}
  "mirage-types" {with-test & < "3.0.0"}
  "tcpip" {with-test}
]
depopts: [
  "mirage-types"
  "tcpip"
  "lwt"
]

conflicts: [
  "tcpip" {< "3.0.0"}
  "mirage-types-lwt" {>= "3.0.0"}
]

build: [
  [
    "ocaml"
    "pkg/pkg.ml"
    "build"
    "--pinned"
    "%{pinned}%"
    "--with-mirage"
    "%{mirage-types+tcpip+lwt:installed}%"
  ]
  [
    "ocaml"
    "pkg/pkg.ml"
    "build"
    "--pinned"
    "%{pinned}%"
    "--tests"
    "true"
    "--with-mirage"
    "%{mirage-types+tcpip+lwt:installed}%"
  ] {with-test}
  ["ocaml" "pkg/pkg.ml" "test"] {with-test}
]
synopsis: "Address Resolution Protocol purely in OCaml"
description: """
ARP is an implementation of the address resolution protocol purely in OCaml.  It
handles IPv4 protocol addresses and Ethernet hardware addresses only.

A MirageOS [V1_LWT.ARP](https://github.com/mirage/mirage/blob/v2.9.0/types/V1.mli#L471) implementation is in the mirage subdirectory.

Motivation for this implementation is [written up](https://hannes.nqsb.io/Posts/ARP)."""
url {
  src: "https://github.com/mirage/arp/releases/download/0.1.1/arp-0.1.1.tbz"
  checksum: "md5=44ae38c452ff02c9e1424650c68e6361"
}
