add a dns resolver

This commit is contained in:
Robur 2021-07-20 15:36:35 +00:00
parent c8f0da2869
commit f916f62910
5 changed files with 205 additions and 0 deletions

View file

@ -0,0 +1,41 @@
opam-version: "2.0"
maintainer: "team AT robur dot io"
authors: ["Hannes Mehnert <hannes@mehnert.org>"]
homepage: "https://github.com/mirage/ocaml-dns"
doc: "https://mirage.github.io/ocaml-dns/"
dev-repo: "git+https://github.com/mirage/ocaml-dns.git"
bug-reports: "https://github.com/mirage/ocaml-dns/issues"
license: "BSD-2-Clause"
depends: [
"dune" {>= "1.2.0"}
"ocaml" {>= "4.07.0"}
"dns" {= version}
"ipaddr" {>= "4.0.0"}
"lwt" {>= "4.2.1"}
"mirage-stack" {>= "2.2.0"}
]
build: [
["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
synopsis: "An opinionated Domain Name System (DNS) library"
description: """
µDNS supports most of the domain name system used in the wild. It adheres to
strict conventions. Failing early and hard. It is mostly implemented in the
pure fragment of OCaml (no mutation, isolated IO, no exceptions).
Legacy resource record types are not dealt with, and there is no plan to support
`ISDN`, `MAILA`, `MAILB`, `WKS`, `MB`, `NULL`, `HINFO`, ... . `AXFR` is only
handled via TCP connections. The only resource class supported is `IN` (the
Internet). Truncated hmac in `TSIG` are not supported (always the full length
of the hash algorithm is used).
Please read [the blog article](https://hannes.nqsb.io/Posts/DNS) for a more
detailed overview.
"""
url { src: "git+https://github.com/mirage/ocaml-dns.git" }

View file

@ -0,0 +1,39 @@
opam-version: "2.0"
maintainer: "team AT robur dot io"
authors: ["Hannes Mehnert <hannes@mehnert.org>"]
homepage: "https://github.com/mirage/ocaml-dns"
doc: "https://mirage.github.io/ocaml-dns/"
dev-repo: "git+https://github.com/mirage/ocaml-dns.git"
bug-reports: "https://github.com/mirage/ocaml-dns/issues"
license: "BSD-2-Clause"
depends: [
"dune" {>= "1.2.0"}
"ocaml" {>= "4.07.0"}
"dns" {= version}
"dns-server" {= version}
"dns-mirage" {= version}
"lru" {>= "0.3.0"}
"duration" {>= "0.1.2"}
"randomconv" {>= "0.1.2"}
"lwt" {>= "4.2.1"}
"mirage-time" {>= "2.0.0"}
"mirage-clock" {>= "3.0.0"}
"mirage-random" {>= "2.0.0"}
"mirage-stack" {>= "2.0.0"}
"alcotest" {with-test}
]
build: [
["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
synopsis: "DNS resolver business logic"
description: """
Forwarding and recursive resolvers as value-passing functions. To be used with
an effectful layer.
"""
url { src: "git+https://github.com/mirage/ocaml-dns.git" }

View file

@ -0,0 +1,40 @@
opam-version: "2.0"
maintainer: "team AT robur dot io"
authors: ["Hannes Mehnert <hannes@mehnert.org>"]
homepage: "https://github.com/mirage/ocaml-dns"
doc: "https://mirage.github.io/ocaml-dns/"
dev-repo: "git+https://github.com/mirage/ocaml-dns.git"
bug-reports: "https://github.com/mirage/ocaml-dns/issues"
license: "BSD-2-Clause"
depends: [
"dune" {>= "1.2.0"}
"ocaml" {>= "4.07.0"}
"dns" {= version}
"dns-mirage" {= version}
"randomconv" {>= "0.1.2"}
"duration" {>= "0.1.2"}
"lwt" {>= "4.2.1"}
"mirage-time" {>= "2.0.0"}
"mirage-clock" {>= "3.0.0"}
"mirage-stack" {>= "2.2.0"}
"mirage-crypto-rng" {with-test}
"alcotest" {with-test}
"dns-tsig" {with-test}
"base64" {with-test & >= "3.0.0"}
"metrics"
]
build: [
["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
synopsis: "DNS server, primary and secondary"
description: """
Primary and secondary DNS server implemented in value-passing style. Needs an
effectful layer to be useful.
"""
url { src: "git+https://github.com/mirage/ocaml-dns.git" }

View file

@ -0,0 +1,45 @@
opam-version: "2.0"
maintainer: "team AT robur dot io"
authors: ["Hannes Mehnert <hannes@mehnert.org>"]
homepage: "https://github.com/mirage/ocaml-dns"
doc: "https://mirage.github.io/ocaml-dns/"
dev-repo: "git+https://github.com/mirage/ocaml-dns.git"
bug-reports: "https://github.com/mirage/ocaml-dns/issues"
license: "BSD-2-Clause"
depends: [
"dune" {>= "1.2.0"}
"ocaml" {>= "4.07.0"}
"rresult" "astring" "fmt" "logs" "ptime"
"domain-name" {>= "0.3.0"}
"gmap" {>= "0.3.0"}
"cstruct" {>= "3.2.0"}
"ipaddr" {>= "3.0.0"}
"alcotest" {with-test}
"lru" {>= "0.3.0"}
"duration" {>= "0.1.2"}
"metrics"
]
build: [
["dune" "subst"] {dev}
["dune" "build" "-p" name "-j" jobs]
["dune" "runtest" "-p" name "-j" jobs] {with-test}
]
synopsis: "An opinionated Domain Name System (DNS) library"
description: """
µDNS supports most of the domain name system used in the wild. It adheres to
strict conventions. Failing early and hard. It is mostly implemented in the
pure fragment of OCaml (no mutation, isolated IO, no exceptions).
Legacy resource record types are not dealt with, and there is no plan to support
`ISDN`, `MAILA`, `MAILB`, `WKS`, `MB`, `NULL`, `HINFO`, ... . `AXFR` is only
handled via TCP connections. The only resource class supported is `IN` (the
Internet). Truncated hmac in `TSIG` are not supported (always the full length
of the hash algorithm is used).
Please read [the blog article](https://hannes.nqsb.io/Posts/DNS) for a more
detailed overview.
"""
url { src: "git+https://github.com/mirage/ocaml-dns.git" }

View file

@ -0,0 +1,40 @@
# Generated by ./config.exe configure -t hvt (2021-07-20 15:27:04-00:00).
opam-version: "2.0"
name: "mirage-unikernel-resolver-hvt"
depends: [ "arp" { >= "2.3.0" & < "3.0.0"}
"dns-resolver" { >= "6.0.0~dev"}
"dns-server"
"ethernet" { >= "2.2.0" & < "3.0.0"}
"functoria-runtime"
"logs"
"lwt"
"mirage" {build & >= "3.10.0" & < "3.11.0"}
"mirage-bootvar-solo5" { >= "0.6.0" & < "0.7.0"}
"mirage-clock-freestanding" { >= "3.0.0" & < "4.0.0"}
"mirage-crypto-rng-mirage" { >= "0.8.0" & < "0.11.0"}
"mirage-logs" { >= "1.2.0" & < "2.0.0"}
"mirage-net-solo5" { >= "0.6.1" & < "0.7.0"}
"mirage-runtime" { >= "3.10.0" & < "3.11.0"}
"mirage-solo5" { >= "0.6.1" & < "0.7.0"}
"mirage-types" { >= "3.10.0" & < "3.11.0"}
"mirage-types-lwt" { >= "3.10.0" & < "3.11.0"}
"ocaml" {build & >= "4.08.0"}
"ocamlbuild" {build}
"ocamlfind" {build}
"solo5-bindings-hvt" { >= "0.6.0" & < "0.7.0"}
"tcpip" { >= "6.1.0" & < "7.0.0"}
]
maintainer: "dummy"
authors: "dummy"
homepage: "dummy"
bug-reports: "dummy"
dev-repo: "git+https://example.com/nonexistent"
build: [ "sh" "-exc" "mirage configure -t hvt --allocation-policy=best-fit && mirage build" ]
synopsis: "This is a dummy"
install: [
[ "cp" "resolver.hvt" "%{bin}%/resolver.hvt" ]
[ "strip" "%{bin}%/resolver.hvt" ]
[ "cp" "resolver.hvt" "%{prefix}%/resolver.hvt.debug" ]
# [ "cp" "README.md" "%{prefix}%/README.md" ]
]
url { src: "git+https://git.robur.io/robur/dns-resolver.git" }