Skip to content

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), and files (reading and writing files).
  • Running endpoints: endpoint (run an endpoint), process (run, start, and stop endpoint processes), storage (storage of objects), and cli (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 the p2p package (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.