package riot

  1. Overview
  2. Docs
An actor-model multi-core scheduler for OCaml 5

Install

Dune Dependency

Authors

Maintainers

Sources

riot-0.0.3.tbz
sha256=6201ce27997ec1c4b4509782c6be2fa2bf102b804b11dcbf9ebdb49a123c19c3
sha512=ad70a67601a892700e461efe57484d109b1d08e30d15464ad8611e71dd568c934d3f948afd645e096e4f97ad1935aaeaf5d9b6d9d59c52a82eeb5c4995421646

doc/src/riot.net/addr.ml.html

Source file addr.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
type 't raw_addr = string
type tcp_addr = [ `v4 | `v6 ] raw_addr
type stream_addr = [ `Tcp of tcp_addr * int ]

module Ipaddr = struct
  let to_unix : tcp_addr -> Unix.inet_addr = Unix.inet_addr_of_string
  let of_unix : Unix.inet_addr -> tcp_addr = Unix.string_of_inet_addr
end

let loopback : tcp_addr = "0.0.0.0"

let tcp host port =
  assert (String.length host > 0);
  `Tcp (host, port)

let to_unix addr =
  match addr with
  | `Tcp (host, port) ->
      (Unix.SOCK_STREAM, Unix.ADDR_INET (Ipaddr.to_unix host, port))

let to_domain addr = match addr with `Tcp (_host, _) -> Unix.PF_INET

let of_unix sockaddr =
  match sockaddr with
  | Unix.ADDR_INET (host, port) -> tcp (Ipaddr.of_unix host) port
  | Unix.ADDR_UNIX addr -> failwith ("unsupported unix addresses: " ^ addr)

let pp ppf (addr : stream_addr) =
  match addr with `Tcp (host, port) -> Format.fprintf ppf "%s:%d" host port
OCaml

Innovation. Community. Security.