parcel and peQL#

parcel defines and compiles data contracts. peQL manages data and applies those contracts to SQL queries.

Task

Where it belongs

Define contract syntax and check expressions.

parcel compiler.

Produce row filters, projections, validation and write plans.

parcel compiler.

Bind caller values, evaluate rules and load compiled contracts.

parcel runtime libraries.

Store registered contracts and control their visibility.

peQL.

Write data, maintain statistics and validation results.

peQL.

Apply contract rules to SQL queries and manage audit records and budgets.

peQL.

peQL calls parcel’s Rust libraries directly. Registering a contract document in peQL does not require the parcel CLI.

The parcel CLI supports authoring and testing contracts separately from the engine. parcel compile -o contract.parcel writes the compiled contract as bytes, which a compatible peQL version registers as given (Engine::register_compiled) without compiling it.

peQL’s quickstart covers the data-and-query workflow. The Contract language reference specifies contract syntax and rule expressions.