capnp-rpc-unix
Cap'n Proto is a capability-based RPC system with bindings for many languages
1024" x-on:close-sidebar="sidebar=window.innerWidth > 1024 && true">
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Library capnp-rpc-unix
val create :
?backlog:int ->
?public_address:Network.Location.t ->
secret_key:[< `File of string | `PEM of string | `Ephemeral ] ->
?serve_tls:bool ->
Network.Location.t ->
t
create ~secret_key listen_address
is the configuration for a server vat that listens on address listen_address
. secret_key
may be one of:
`File path
: a PEM-encoded RSA private key is read frompath
. Ifpath
doesn't yet exist, a new key is created and stored there.`PEM data
: the given PEM-encoded data is used as the key.`Ephemeral
: a new key is generated (if needed) and not saved anywhere. Ifserve_tls
isfalse
then the vat accepts unencrypted incoming connections. Iftrue
(the default), the vat performs a server TLS handshake, usingsecret_key
to prove its identity to clients.backlog
is passed toUnix.listen
. The vat will suggest that others connect to it atpublic_address
(orlisten_address
if no public address is given).
val secret_key : t -> Capnp_rpc_lwt.Auth.Secret_key.t
secret_key t
returns the vat's secret yet, generating it if this is the first time it has been used.
val hashed_secret : t -> string
hashed_secret t
is the SHA256 digest of the secret key file. This is useful as an input to Restorer
.Id.derived.
val derived_id : t -> string -> Capnp_rpc_lwt.Restorer.Id.t
derived_id t name
is a secret service ID derived from name and the vat's secret key (using Restorer
.Id.derived). It won't change (unless the vat's key changes).
val sturdy_uri : t -> Capnp_rpc_lwt.Restorer.Id.t -> Uri.t
sturdy_uri t id
is a sturdy URI for id
at the vat that would be created by t
.
val cmd : t Cmdliner.Term.t
cmd
evalutes to a configuration populated from the command-line options.