Proxystore

Latest version: v0.7.1

Safety actively analyzes 685670 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 4

0.6.1

<!-- Release notes generated using configuration in .github/release.yml at v0.6.1 -->

This release adds some quality-of-life improvements and the new `ProxyFuture` interface.

Highlights
* Added the `ProxyFuture` and `Store.future()` interfaces. Learn how they work in the [Proxy Futures Guide](https://docs.proxystore.dev/main/guides/proxy-futures/).
* ProxyStore Endpoints support Globus Client Identities.
* Added tools for checking if ProxyStore Endpoint peering will work on your network.
* Better exception handling and error propogation when using ProxyStore endpoints.

Read the full changelog before for details.

Upgrade Steps


$ pip install --upgrade proxystore[all]


If you previously imported the `Connector` protocol, the import has changed:
python
from proxystore.connectors.connector import Connector old
from proxystore.connectors.procotols import Connector new


What's Changed

Breaking Changes
* Extend some `Connector`s to implement the `DeferrableConnector` protocol by gpauloski in https://github.com/proxystore/proxystore/pull/396
* Note this is only a breaking change because the `proxystore.connectors.connector` was renamed to `proxystore.connectors.protocols`.

Enhancements
* Add optional `max_message_size` check to `RelayServer` by gpauloski in https://github.com/proxystore/proxystore/pull/403
* Support Globus Client Identities for endpoint authentication by gpauloski in https://github.com/proxystore/proxystore/pull/407
* Add the `ProxyFuture` interface and `Store.future()` method by gpauloski in https://github.com/proxystore/proxystore/pull/414
* Improve propagation of errors in endpoint route handlers and the `EndpointConnector` by gpauloski in https://github.com/proxystore/proxystore/pull/416
* Add NAT type checks and tools for endpoint peering by gpauloski in https://github.com/proxystore/proxystore/pull/418

Bug Fixes
* Log unhandled endpoint serving exceptions by gpauloski in https://github.com/proxystore/proxystore/pull/401

Internal Changes
* Split `proxystore.store.base` into multiple modules by gpauloski in https://github.com/proxystore/proxystore/pull/395
* Catch `AttributeError` in `PeerManager` test during cancelled asyncio task clean up by gpauloski in https://github.com/proxystore/proxystore/pull/406
* Skip pytest-asyncio v0.22.0 by gpauloski in https://github.com/proxystore/proxystore/pull/409
* Remove unused parameter `metrics` to `StoreFactory` by gpauloski in https://github.com/proxystore/proxystore/pull/415

Documentation
* Fix bad relative link in endpoints guide by gpauloski in https://github.com/proxystore/proxystore/pull/399
* Remove references to legacy docs by gpauloski in https://github.com/proxystore/proxystore/pull/400
* Update preferred citations to SC23 proceedings by gpauloski in https://github.com/proxystore/proxystore/pull/408
* Add ProxyImports featured publication by gpauloski in https://github.com/proxystore/proxystore/pull/412

Development Workflows
* Test against all Python versions on MacOS by gpauloski in https://github.com/proxystore/proxystore/pull/387


**Full Changelog**: https://github.com/proxystore/proxystore/compare/v0.6.0...v0.6.1

0.6.0

<!-- Release notes generated using configuration in .github/release.yml at v0.6.0 -->

This release introduces major changes to the serving of endpoints and relay servers and removes some features marked as deprecated in v0.5.0. Please read the "Upgrade Steps" section to see if you will be affected by any of the breaking changes.

Highlights

* Endpoints now use Globus Auth and a default relay server for peering.
* Endpoint configuration files are now TOML and include more options.
* The `proxystore-globus-auth` CLI now includes `login` and `logout` subcommands.
* Moved `proxystore.connectors.dim` module to the [`proxystore-ex`](https://github.com/proxystore/extensions) package.
* Removed deprecated `XStore` compatibility wrappers.
* Removed Python 3.7 support.

Upgrade Steps

bash
$ pip install --upgrade proxystore[all]


Users of the following features will need to make additional changes:
* `GlobusConnector`
* ProxyStore Endpoints
* ProxyStore Relay Servers

Globus Auth Tokens for the `GlobusConnector`

The way Globus Auth tokens are stored has changed. To upgrade, remove the old tokens and reauthenticate. We suggest including the UUIDs of any Globus Collections you plan to use.
bash
$ rm ~/.local/share/proxystore/globus-tokens.json
$ proxystore-globus-auth login -c <COLLECTION_UUID> -c <COLLECTION_UUID>

You may also wish to revoke old tokens granted to the "ProxyStore Application." Visit [https://app.globus.org/settings/consents](https://app.globus.org/settings/consents) and select "Manage Your Consents" to see all grants and delete them.

ProxyStore Endpoints Configuration Files

Configuration files have changed, so existing endpoints will fail to start. You can perform a clean removal by removing the old endpoint directory.
bash
$ rm -r ~/.local/share/proxystore/<ENDPOINT_NAME>
$ proxystore-endpoint configure <ENDPOINT_NAME>

Alternatively, you can replace the old `config.json` files with a new `config.toml` file in your endpoint directory. A sample configuration file can be found in the [Endpoints Guide](https://docs.proxystore.dev/main/guides/endpoints/#endpoint-cli).

ProxyStore Relay Server Updates

The ProxyStore Relay Server implementation has changed, so v0.5 endpoints and relay servers are not compatible with v0.6. A [Relay Serving](https://docs.proxystore.dev/main/guides/relay-serving/) guide is now available to learn how to serve v0.6 relays.

What's Changed

Breaking Changes
* Drop Python 3.7 support by gpauloski in https://github.com/proxystore/proxystore/pull/337
* Remove deprecated `XStore` wrappers by gpauloski in https://github.com/proxystore/proxystore/pull/338
* Enable dependency injection model for relay client with `PeerManager` and `PeerConnection` by gpauloski in https://github.com/proxystore/proxystore/pull/363
* Enable dependency injection model for `PeerManager` and `Endpoint` by gpauloski in https://github.com/proxystore/proxystore/pull/365
* Refactor Globus authentication tools by gpauloski in https://github.com/proxystore/proxystore/pull/367
* Refactor `proxystore.p2p` and `proxystore.utils` by gpauloski in https://github.com/proxystore/proxystore/pull/369
* Merge basic and Globus relay server implementations by gpauloski in https://github.com/proxystore/proxystore/pull/372
* Use TOML for endpoint and relay configuration files by gpauloski in https://github.com/proxystore/proxystore/pull/374
* Migrate DIM connectors to extensions package by gpauloski in https://github.com/proxystore/proxystore/pull/375

Enhancements
* Improve error logging in background tasks by gpauloski in https://github.com/proxystore/proxystore/pull/342
* Improve relay server logging by gpauloski in https://github.com/proxystore/proxystore/pull/345
* Improve auto-reconnection in relay server client by gpauloski in https://github.com/proxystore/proxystore/pull/346
* Create prototype Globus Auth relay server by gpauloski in https://github.com/proxystore/proxystore/pull/370
* Make endpoints support Globus Auth relays (62) by gpauloski in https://github.com/proxystore/proxystore/pull/373
* Set default relay address and update endpoints guide by gpauloski in https://github.com/proxystore/proxystore/pull/379
* Improve logging when tokens are missing on endpoint start by gpauloski in https://github.com/proxystore/proxystore/pull/380

Bug Fixes
* Correct unit conversion from ns by WardLT in https://github.com/proxystore/proxystore/pull/358

Internal Changes
* Move object size check from `Endpoint` to `Storage.set()` by gpauloski in https://github.com/proxystore/proxystore/pull/376
* Fix flakey unit tests by gpauloski in https://github.com/proxystore/proxystore/pull/378

Documentation
* Move DOI badge to citation sections of docs and README by gpauloski in https://github.com/proxystore/proxystore/pull/348

Package Changes
* Create CITATION.cff by gpauloski in https://github.com/proxystore/proxystore/pull/349
* Create CODE_OF_CONDUCT.md by gpauloski in https://github.com/proxystore/proxystore/pull/350
* Create CONTRIBUTING.md and SECURITY.md by gpauloski in https://github.com/proxystore/proxystore/pull/351

Development Workflows
* Bump actions/checkout from 3 to 4 by dependabot in https://github.com/proxystore/proxystore/pull/355

**Full Changelog**: https://github.com/proxystore/proxystore/compare/v0.5.2...v0.6.0

0.5.2

<!-- Release notes generated using configuration in .github/release.yml at v0.5.2 -->

This is (likely) the last patch release of ProxyStore v0.5 and releases some minor bug fixes and enhancements. The next release will be v0.6 and can be tracked using the [milestone](https://github.com/proxystore/proxystore/milestone/3).

Upgrade Steps

$ pip install --upgrade proxystore


What's Changed

Enhancements
* Support two or more Globus endpoints (279) by gpauloski in https://github.com/proxystore/proxystore/pull/334

Bug Fixes
* Fix long endpoint names being clipped (327) by gpauloski in https://github.com/proxystore/proxystore/pull/329
* Explicitly re-export `Store` in `proxystore.store` (331) by gpauloski in https://github.com/proxystore/proxystore/pull/332

Documentation
* Add zenodo badge by gpauloski in https://github.com/proxystore/proxystore/pull/326

**Full Changelog**: https://github.com/proxystore/proxystore/compare/v0.5.1...v0.5.2

0.5.1

<!-- Release notes generated using configuration in .github/release.yml at v0.5.1 -->

This release introduces some enhancements to ProxyStore v0.5. Notably, ProxyStore has new default behavior for dealing with singleton types, a thread race-condition in store registration was fixed, and some new features have been added!

Upgrade Steps


$ pip install --upgrade proxystore


What's Changed
Breaking Changes
* Avoid proxying singleton types (`True`, `False`, `None`) by gpauloski in https://github.com/proxystore/proxystore/pull/315
Enhancements
* Add `store_registration()` context manager by gpauloski in https://github.com/proxystore/proxystore/pull/317
* Add `clear` flag to `Connector` implementations that support it by gpauloski in https://github.com/proxystore/proxystore/pull/320
Bug Fixes
* Adding lock to register store factory by AK2000 in https://github.com/proxystore/proxystore/pull/321
Internal Changes
* Refactor and simplify `Store` unit tests by gpauloski in https://github.com/proxystore/proxystore/pull/318
Documentation
* Add publications/citations to docs by gpauloski in https://github.com/proxystore/proxystore/pull/306
* Fix example syntax error and add mypy notes by gpauloski in https://github.com/proxystore/proxystore/pull/309
* Fix docstrings rendering as raw HTML by gpauloski in https://github.com/proxystore/proxystore/pull/314

New Contributors
* AK2000 made their first contribution in https://github.com/proxystore/proxystore/pull/321

**Full Changelog**: https://github.com/proxystore/proxystore/compare/v0.5.0...v0.5.1

0.5.0

<!-- Release notes generated using configuration in .github/release.yml at v0.5.0 -->

This release introduces some major structural changes to ProxyStore over nearly 200 commits! The full changelog is listed below, but here's a quick overview of the primary change to ProxyStore's architecture.

Rather than providing different `Store` implementations that subclass `proxystore.store.base.Store`, there is now only a single `Store` type that is initialized with a `Connector`. The `Connector` is the interface to the low-level byte storage, while the `Store` provides the high-level ProxyStore interface and features. You can read more about the conceptual model in the [docs](https://docs.proxystore.dev/main/concepts/).

**Before:**
python
from proxystore.store import register_store
from proxystore.store.redis import RedisStore

store = RedisStore('my-store', host='localhost', port=1234)
register_store(store)

**Now:**
python
from proxystore.connectors.redis import RedisConnector
from proxystore.store import register_store
from proxystore.store import Store

store = Store('my-store', RedisConnector('localhost', 1234))
register_store(store)


The [`Connector`](https://docs.proxystore.dev/main/api/connectors/connector/#proxystore.connectors.connector.Connector) type is a [`Protocol`](https://docs.python.org/3/library/typing.html#typing.Protocol) which will enable third-party code to more easily extend the proxy model to other object communication and storage frameworks.

Upgrade Steps

Dependencies needed by specific `Connector` types have been moved to extras install options. The `all` option will install all possible dependencies. Installing ProxyStore without any extra will provide a minimal installation with only a few dependencies.
bash
$ pip install --upgrade proxystore[all]


Endpoint configuration files changed in 285 and 286. We recommend removing your old configurations and creating new ones.
bash
$ proxystore-endpoint stop {endpoint-name}
$ rm -r ~/.local/share/proxystore/{endpoint-name}
$ proxystore-endpoint configure {endpoint-name} ...
$ proxystore-endpoint start {endpoint-name}


What's Changed

Breaking Changes
* Refactor `Store` implementations into separate `Connector`s by gpauloski in https://github.com/proxystore/proxystore/pull/217
* Move some dependencies to extras by gpauloski in https://github.com/proxystore/proxystore/pull/223
* Rename signaling server to relay server by gpauloski in https://github.com/proxystore/proxystore/pull/229
* Better metric tracking for `Store`s by gpauloski in https://github.com/proxystore/proxystore/pull/237
* Enable automatic relay server reconnection by gpauloski in https://github.com/proxystore/proxystore/pull/268
* Change `Store.set()` to `Store.put()` by gpauloski in https://github.com/proxystore/proxystore/pull/283
* Rename `endpoint.{json,log}` to `config.json` and `log.txt` by gpauloski in https://github.com/proxystore/proxystore/pull/285
* Improve endpoint blob storage options by gpauloski in https://github.com/proxystore/proxystore/pull/286
* Refactor distributed in-memory connectors by gpauloski in https://github.com/proxystore/proxystore/pull/293

Enhancements
* Add shortcut cache check in `Store.exists()` by gpauloski in https://github.com/proxystore/proxystore/pull/232
* Record last event time in `TimeStats` by gpauloski in https://github.com/proxystore/proxystore/pull/239
* Support unregistering stores by instance by gpauloski in https://github.com/proxystore/proxystore/pull/244
* Add context manager support to connector implementations by gpauloski in https://github.com/proxystore/proxystore/pull/245
* Add `test` subcommand to `proxystore-endpoint` by gpauloski in https://github.com/proxystore/proxystore/pull/247
* Improve peer connection error handling by gpauloski in https://github.com/proxystore/proxystore/pull/249
* Support "dormant" connectors in `MultiConnector` by gpauloski in https://github.com/proxystore/proxystore/pull/266
* Make address/interface optional for `{Margo,UCX,ZeroMQ}Connector` by ValHayot in https://github.com/proxystore/proxystore/pull/298

Bug Fixes
* Fix `ZeroMQServer` pickle error with multipart messages by gpauloski in https://github.com/proxystore/proxystore/pull/219
* Reuse HTTP connections in endpoint clients by gpauloski in https://github.com/proxystore/proxystore/pull/290

Internal Changes
* Use `click` for command line interfaces by gpauloski in https://github.com/proxystore/proxystore/pull/226
* Improve logging throughout the package by gpauloski in https://github.com/proxystore/proxystore/pull/243
* Change ASGI to Uvicorn from Hypercorn by gpauloski in https://github.com/proxystore/proxystore/pull/284

Documentation
* Improve documentation by gpauloski in https://github.com/proxystore/proxystore/pull/220
* Include API inventories for external packages by gpauloski in https://github.com/proxystore/proxystore/pull/228
* Fix docker command in contributing guide by gpauloski in https://github.com/proxystore/proxystore/pull/257
* Improve README with better description and example by gpauloski in https://github.com/proxystore/proxystore/pull/271
* Documentation improvements for endpoints and figures by gpauloski in https://github.com/proxystore/proxystore/pull/272
* Migrate funcX to Globus Compute by gpauloski in https://github.com/proxystore/proxystore/pull/276
* Use "Attributes" section for NamedTuple/Dataclass docstrings by gpauloski in https://github.com/proxystore/proxystore/pull/282
* Add a Globus Compute guide by gpauloski in https://github.com/proxystore/proxystore/pull/288

Package Changes
* Add `[all]` extras install option by gpauloski in https://github.com/proxystore/proxystore/pull/227

Development Workflows
* Pin UCX and Margo versions in tox by gpauloski in https://github.com/proxystore/proxystore/pull/213
* Add PR branch cache cleanup action by gpauloski in https://github.com/proxystore/proxystore/pull/230
* Adjust PR tags and release template by gpauloski in https://github.com/proxystore/proxystore/pull/291
* Enable PyLint warning/errors by gpauloski in https://github.com/proxystore/proxystore/pull/294

New Contributors
* charliesabino made their first contribution in 293

**Full Changelog**: https://github.com/proxystore/proxystore/compare/v0.4.1...v0.5.0

0.4.1

<!-- Release notes generated using configuration in .github/release.yml at v0.4.1 -->

This release adds some new backends, the `MultiStore` and `ZeroMQStore`, and overhauls the docs which are now hosted at [docs.proxystore.dev](https://docs.proxystore.dev)!

Upgrade Steps

bash
$ pip install --upgrade proxystore


What's Changed

New Features
* Support Globus consents by gpauloski in https://github.com/proxystore/proxystore/pull/180
* Add `MultiStore` by gpauloski in https://github.com/proxystore/proxystore/pull/193
* Add `ZeroMQStore` by gpauloski in https://github.com/proxystore/proxystore/pull/208

Bug Fixes
* Fix peer-channels not passed to configure by gpauloski in https://github.com/proxystore/proxystore/pull/189
* Use IP instead of hostname for client endpoint requests by gpauloski in https://github.com/proxystore/proxystore/pull/191
* Prevent race condition when iterating over `Store._stats` by WardLT in https://github.com/proxystore/proxystore/pull/207

Documentation
* Migrate to MKDocs by gpauloski in https://github.com/proxystore/proxystore/pull/197

Dependencies
* Support Python 3.11 by gpauloski in https://github.com/proxystore/proxystore/pull/138
* Migrate to `pyproject.toml` by gpauloski in https://github.com/proxystore/proxystore/pull/176
* Bump actions/checkout from 2 to 3 by dependabot in https://github.com/proxystore/proxystore/pull/177
* Upgrade cryptography per CVE-2023-23931 by gpauloski in https://github.com/proxystore/proxystore/pull/190

New Contributors
* dependabot made their first contribution in https://github.com/proxystore/proxystore/pull/177

**Full Changelog**: https://github.com/proxystore/proxystore/compare/v0.4.0...v0.4.1

Page 2 of 4

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.