proxystore.endpoint¶
Endpoints for direct, cross-site communication.
Warning
The Python interface of this package is an internal implementation
detail which may change between releases without notice. The modules are
documented for development. Use endpoints through the
proxystore-endpoint CLI and the
EndpointConnector,
which raises an
EndpointConnectorError
and warns with a
VersionMismatchWarning.
The formats of the files and protocols of endpoints are versioned (see
the Endpoints Guide).
Note
Please refer to the Endpoints Guide for an introduction to endpoints in ProxyStore.
Endpoints are in-memory object
stores with peering capabilities. Endpoints enable peer-to-peer data transfer
between clients behind different NATs. See the
proxystore-endpoint CLI reference
to start your own endpoints.
The package is organized as follows:
- Files shared by endpoints and clients:
directory(creating, finding, and managing endpoints and the files in their directories),config(configuration),identity(endpoint IDs and secret keys),peers(the peers an endpoint communicates with), andfiles(reading and writing files). - Running endpoints:
endpoint(run an endpoint),process(run, start, and stop endpoint processes),storage(storage of objects), andcli(the implementation of the CLI). - Communication:
client(connect to a running endpoint),protocol(the wire protocol),auth(client authentication),server(the server which accepts client connections),dispatch(handling requests), and thep2ppackage (communication with peers). - Errors:
exceptions(errors raised by endpoints and their clients).
Note
Endpoints and their clients (e.g., the
EndpointConnector)
require the endpoints extra. Clients and endpoints share the ProxyStore
home directory so they are expected to share a Python environment too.