package happy-eyeballs-lwt

  1. Overview
  2. Docs
Connecting to a remote host via IP version 4 or 6 using Lwt_unix

Install

Dune Dependency

Authors

Maintainers

Sources

happy-eyeballs-1.0.0.tbz
sha256=5ea47f841ab2b70c65e861f2aebf85231e5581be5344e0e34e8564d5a500fdad
sha512=0819413dfe7fccacdfd9c4b2832f2a88b074d3d7ce419e0050a5f5fd104202c8757fe9d4a7133f592b9b2452cae0581d257853f339563c6a133500e5fab77316

Description

Happy eyeballs is an implementation of RFC 8305 which specifies how to connect to a remote host using either IP protocol version 4 or IP protocol version 6. This uses Lwt and Lwt_unix for side effects.

Published: 20 May 2024

README

happy eyeballs -- connecting to a remote host

RFC 8305 describes how to connect to a remote host, given that the host may have multiple addresses (IPv4 and IPv6, via DNS A and AAAA resource records), and the local host may have connectivity via IPv4 only, IPv6 only, or both. The preference is to use IPv6.

This package implements the given RFC in its core (Happy_eyeballs module). In addition, the Happy_eyeballs_lwt is a Lwt implementation using Unix.

The implemented state machine is kept in-sync with the code (source: happy_eyeballs.dot at the root of this repository).

It is licensed under the ISC license.

Installation

opam install happy-eyeballs happy-eyeballs-lwt happy-eyeballs-mirage

Development

Since dns-client depends on happy-eyeballs and happy-eyeballs-lwt, happy-eyeballs-mirage depend on dns-client, the dune build system is easily confused. A workaround is after a git clone of happy-eyeballs, do an opam source dns-client. Then dune will use the local dns-client package, and there will be no circularity issue.

Dependencies (12)

  1. mtime >= "1.0.0"
  2. lwt
  3. logs
  4. fmt
  5. ipaddr
  6. domain-name
  7. dns >= "7.0.0"
  8. duration
  9. cmdliner >= "1.1.0"
  10. happy-eyeballs = version
  11. dune >= "2.0.0"
  12. ocaml >= "4.08.0"

Dev Dependencies

None

Used by (5)

  1. albatross >= "1.3.0"
  2. git-unix >= "3.7.0"
  3. http-lwt-client
  4. irmin-cli
  5. irmin-unix >= "3.1.0"

Conflicts

None

OCaml

Innovation. Community. Security.