Happy Eyeballs (RFC 8305) connection establishment, I/O-free core
2.0 kB
52 lines
1(lang dune 3.21)
2(using mdx 0.4)
3(name nox-happy-eyeballs)
4(source (github robur-coop/happy-eyeballs))
5(license ISC)
6(authors
7 "Robur <team@robur.coop>"
8 "Hannes Mehnert <hannes@mehnert.org>"
9 "Thomas Gazagnaire <thomas@gazagnaire.org>")
10(maintainers
11 "Thomas Gazagnaire <thomas@gazagnaire.org>")
12
13(generate_opam_files true)
14(implicit_transitive_deps false)
15
16(package
17 (name nox-happy-eyeballs)
18 (synopsis "Happy Eyeballs (RFC 8305) connection establishment, I/O-free core")
19 (description
20 "WARNING: This is an experimental fork of happy-eyeballs. Do not use in production. Use happy-eyeballs instead: https://github.com/robur-coop/happy-eyeballs. An implementation of the Happy Eyeballs algorithm (RFC 8305): given a host with both IPv4 (A) and IPv6 (AAAA) addresses, race the candidate connections and prefer IPv6, so a slow or broken address family does not stall the connection. The core is in value-passing style and does no I/O: it takes time as a parameter and emits actions for an effectful layer to perform. Derived from robur-coop/happy-eyeballs; the nox-happy-eyeballs-eio package wires it onto Eio sockets.")
21 (tags (org:blacksun org:robur network))
22 (depends
23 (ocaml (>= 4.14.0))
24 (dune (>= 3.0))
25 duration
26 (domain-name (>= 0.2.0))
27 (ipaddr (>= 5.2.0))
28 (fmt (>= 0.8.7))
29 logs
30 (alcotest :with-test)))
31
32(package
33 (name nox-happy-eyeballs-eio)
34 (synopsis "Eio backend for nox-happy-eyeballs")
35 (description
36 "An Eio backend over the nox-happy-eyeballs connection state machine: a timer runs as a fiber and the connection candidates race as sibling fibers, with the losers cancelled as soon as one connects. Name resolution is injectable and defaults to Eio.Net.getaddrinfo; the caller can supply a pure-OCaml resolver instead.")
37 (tags (org:blacksun org:robur network eio))
38 (depends
39 (ocaml (>= 5.1))
40 (dune (>= 3.0))
41 nox-happy-eyeballs
42 eio
43 ipaddr
44 domain-name
45 duration
46 fmt
47 logs
48 (alcotest :with-test)
49 (alcobar :with-test)
50 (eio_main :with-test)
51 (mdx :with-test)
52 eio-net))