* bucket check and async setup
clients perform direct setup by default
* (python) more consistent json for internal api
all requests and response are JSON.
all binary payloads are explicitly encoded as base64
within api.py, and decoded back to bytes before leaving api.py.
User-facing code, e.g. bucket.py and bucket_service.py,
should not see base64 wrangling.
* Support async for all ops
refactor api.py to be async-first
use new asyncio loops to support non-async interface;
cannot call non-async methods from async context
* [js] update client to work with unified service
bump both versions to 0.2.1
disable npm/pypi publish except on manual workflow run
* disable request compression
* fix workflow tests
update standalone Spiral test server to use new JSON interface
* add "release" trigger to workflows
* remove auto-publish on release
seems to trigger incorrectly?
manual workflow_dispatch -> release is fine for now.
* Setup Github Actions builds for Python client
* unify js and python releases
(triggered by github release)
* reduce build churn: run mac/win only after linux
* ignore some paths in PR build trigger
* name python builder workflow
New client interface to support async usage.
This commit implements async versions of write() and privateRead(); all other calls fall back to blocking synchronous versions.
JS Client changes:
Gracefully return null if key is not found in bucket (instead of throwing)
Support single and multi-key lookups in a unified privateRead function
- Implement the PRG seed trick, reducing the upload sizes for queries
and public parameters by 2x
- Use two RNG's, one for public uniform data and one for secret noise
- Remove type parameters from Client and DiscreteGaussian (simplifying
their implementations)
- Make Client.generate_query and associated methods only require &self,
instead of &mut self; this makes parallel query generation easier
Thanks to Prof. Ian Goldberg for his help with these changes.
They are adapted from his work, available here:
https://git-crysp.uwaterloo.ca/iang/spiral-rs-fork/commit/d6d546d