Page
Library
Module
Module type
Parameter
Class
Class type
Source
Resolver.Make
SourceFunctor to construct a concrete resolver using a Conduit.IO
implementation, usually via either Lwt or Async
module IO : Conduit.IO
Abstract type of the cooperative threading library used, normally defined via the IO
module type
State handle for a running resolver
Abstract type for a service entry, which maps a URI scheme into a protocol handler and TCP port
A rewrite function resolves a service and a URI into a concrete endpoint.
f ++ g
is the composition of the service functions f
and g
.
init ?service ?rewrites
will initialize the resolver and return a state handler. The service argument should contain the system-specific resolution mechanism for URI schemas.
The rewrites
argument can optionally override a subset of the URI domain name with the given rewrite_fn
to permit custom resolution rules. For example, a rewrite rule for ".xen" would let the rewrite function resolve hostnames such as "foo.xen" into a shared memory channel for the "foo" virtual machine.
add_rewrite ~host f t
will add to the t
resolver the f
rewrite rule for all the domain names that shortest-prefix match host
service t
is the function which is called when trying to resolve a hostname with t
.
resolve_uri ?rewrites ~uri t
will use t
to resolve the uri
into a concrete endpoint. Any rewrites
that are passed in will be overlayed on the existing rules within the t
resolver, but not otherwise modify it.