Repository navigation
Releases: griot-cloud/peQL
Release list
0.4.2
See CHANGELOG.md
Install
Linux and macOS: curl -LsSf https://github.com/griot-cloud/peQL/releases/latest/download/install.sh | sh
Windows: powershell -ExecutionPolicy ByPass -c "irm https://github.com/griot-cloud/peQL/releases/latest/download/install.ps1 | iex"
Python: pip install peql. Or download the archive for your platform below and check it against its .sha256.
0.4.1
See CHANGELOG.md
Install
Linux and macOS: curl -LsSf https://github.com/griot-cloud/peQL/releases/latest/download/install.sh | sh
Windows: powershell -ExecutionPolicy ByPass -c "irm https://github.com/griot-cloud/peQL/releases/latest/download/install.ps1 | iex"
Python: pip install peql. Or download the archive for your platform below and check it against its .sha256.
0.4.0
peQL now enforces contracts written in parcel and has
no policy language of its own. parcel compiles each contract; peQL stores, writes, validates and
queries under it. Every 0.3 policy has a parcel equivalent (migration guide).
Enforcement
- Contracts are views: a filter of
admitrules and drop-level assertions, and a projection of
exposed columns and transforms, with the caller bound as literals. The optimiser pushes the
filter into the Parquet scan and prunes files and row groups. 0.3 read every file whole
before filtering. - A gate on every view. The engine refuses a plan in which contract data is read outside its
gate, and the gate stops caller predicates that could fail from running on hidden rows. decide,guarantee(against manifests),assert(stored flags), and every shape:
sample,noiseat rows or aggregates, andsuppressin every aggregate.- Privacy budgets are charged once per query and only for queries that read the noised column.
They are enforced by default and persist across restarts. - The statement guard parses SQL instead of scanning keywords.
Lifecycle
- The write path (flags, clustering, partitions, bloom filters, contract hash in each file),
manifests, validation with a data hash, and re-validation of every contract over shared files. - A contract store with versions and publication to tenants or
public. Contracts a caller may
not see are indistinguishable from absent ones. - Tenants' WebAssembly functions, stored by owner and callable only from their own contracts.
- parcel bundles as the handoff: registered only when they recompile to the same hash.
Kept, rebuilt on the new engine
K04DEngine: tenant-scoped and governed. In 0.3 it ran SQL over raw registered tables with no
enforcement.- The worker pool, now sharing one engine and able to sign envelopes through T05.
- The result cache. Its key now covers the caller's bound context and the data, where 0.3's
(tenant, sql)key could serve one caller's rows to another in the same tenant. - Result formats (Arrow IPC, Parquet, JSON lines).
- Scan statistics and attestation hashes, now in every query's envelope.
- The platform adapter: signed parcel bundles from T03 in place of SQL templates and Rego.
- Lance: now streamed, with projections and safe filters passed down. Reads through storaged
name each object, fixing 0.3's provider, which read the same bytes for every object and could
not open a Lance dataset. - Python bindings, with the same
Caller(id, purpose, tenant)and newwrite,validate,
describe,publish. - A
peqlcommand line, released as binaries for Linux (x86_64, arm64), macOS (arm64, x86_64)
and Windows (x64) withinstall.shandinstall.ps1installers, and Python wheels for the
same platforms.
Removed
- The JSON contract format,
ResolvedPolicy, the optimiser rules and the row-filter, masking,
contract-approved and Laplace-noise operators: parcel expresses these now. - Graph table functions: graphs are two contracts traversed with recursive SQL
(docs).
Mask changes: redact is a fixed *** whatever the length, partial fully masks values of
four characters or fewer, and the null mask gives a real null instead of an empty string.
DataFusion 55, Arrow 59, Rust 2024 edition; license Apache-2.0.
Install
Linux and macOS: curl -LsSf https://github.com/griot-cloud/peQL/releases/latest/download/install.sh | sh
Windows: powershell -ExecutionPolicy ByPass -c "irm https://github.com/griot-cloud/peQL/releases/latest/download/install.ps1 | iex"
Python: pip install peql. Or download the archive for your platform below and check it against its .sha256.