Repository navigation
Releases: small-gear-lab/libsortition
Releases · small-gear-lab/libsortition
Release list
v0.1.1
Documentation only: the library and the command are the same as in 0.1.0. The npm and NuGet pages now show how to install the package, and the READMEs of the .NET, Java, Swift and Dart bindings say that the shared library can be taken from the releases page.
What changed
- The npm and NuGet pages now show how to install the package (
npm install libsortition-wasm,dotnet add package Sortition). - The .NET, Java, Swift and Dart READMEs say that the shared library can be taken from the releases page.
- Publishing to crates.io, npm and NuGet now runs from a workflow with Trusted Publishing, with no API keys.
Files
| file | what |
|---|---|
sortition-v0.1.1-<target>.tar.gz / .zip |
the sortition command (bin/), the shared library (lib/) and the C header (include/) for Linux (x86-64, arm64), macOS (arm64, x86-64) and Windows (x86-64) |
libsortition-wasm-0.1.1.tgz, sortition-v0.1.1.wasm |
the npm package of the WebAssembly build, and the module itself |
SHA256SUMS |
the SHA-256 of every file |
Verifying the files
sha256sum --check --ignore-missing SHA256SUMS
gh attestation verify <file> --repo small-gear-lab/libsortitionEvery file has a build provenance attestation made by the release workflow from the v0.1.1 tag.
Full list of changes since 0.1.0: v0.1.0...v0.1.1
v0.1.0
The first release of libsortition: fair, repeatable and verifiable random lotteries, as a Rust crate with a C ABI, the sortition command, and bindings for many languages.
What is in it
- The core (Rust, with a C ABI and header): drawing k of n without replacement, repeatable with a seed (xoshiro256**) or from the operating system's randomness (ChaCha20); seeds from strings with a SHA-256 commitment; candidates as arbitrary bytes with order-independent IDs and a set fingerprint; prize stages; sessions that continue where they stopped, with idempotency keys and a revision; saved states (JSON) and sealed tokens (XChaCha20-Poly1305); drawing from lines of text and from JSON, YAML or TOML.
- The
sortitioncommand:draw(with a record of the draw),verify,fingerprintandcommit. - Bindings: Node.js (native addon and WebAssembly, with a browser persistence helper and a demo), PHP, Python, Ruby, .NET, Go, Java (and Kotlin), Swift and Dart, and a C and C++ example.
- A specification (docs/SPEC.md), shared test vectors that every binding's tests read, and an independent reference implementation in Python.
Files
| file | what |
|---|---|
sortition-v0.1.0-<target>.tar.gz / .zip |
the sortition command (bin/), the shared library (lib/) and the C header (include/) for Linux (x86-64, arm64), macOS (arm64, x86-64) and Windows (x86-64) |
libsortition-wasm-0.1.0.tgz, sortition-v0.1.0.wasm |
the npm package of the WebAssembly build, and the module itself |
SHA256SUMS |
the SHA-256 of every file |
Verifying the files
sha256sum --check --ignore-missing SHA256SUMS
gh attestation verify <file> --repo small-gear-lab/libsortitionEvery file has a build provenance attestation made by the release workflow from the v0.1.0 tag.