Pipecircuit
HERE BE DRAGONS
You probably shouldn't be using this, yet.
Correct. Robust. Fast. Portable.
Pick four.
A Rust framework for software development that's strict enough to hand to an agent, with performance you'll be proud to ship.
The storage feature provides bounded primary-indexed structure-of-arrays
through pipecircuit::storage::warp_table. The default
secondary-indexes feature adds declared Roaring-backed secondary indexes,
fluent set-algebra queries over opaque selections, and ordered selections
ranked by bit-sliced range indexes. Query results resolve to
flat generated row references containing id beside the declared row fields;
internal stable membership and bitmap representations never enter the public
query surface.
The present storage and secondary-query implementation uses alloc. A future
feature boundary should let consumers select fixed-capacity and alloc-backed
storage/query facilities independently; the current API does not pre-empt that
design.
A Pipe names independent inbound and outbound semantic families. An
InstalledPipe<Protocol, Transport> installs concrete access to that contract.
A local implementation can be a core machine that does not implement Pipe:
use ;
;
;
;
let mut installed = new;
assert_eq!;
Inline proves one synchronous step returns exactly the pipe's output.
Other transports implement TransportTo and TransportFrom independently:
submission is a physical fact, not a promise of an immediate semantic response.
A foreign program can fulfill the contract without running Pipecircuit.
The 0.0.17 API renames Participant to Pipe, the former installed Pipe
to InstalledPipe, and DuplexFitting to DuplexTransport. PipeIn and
PipeOut select directional codec families. Inline::new retains the direct
machine-as-contract form; Inline::for_pipe selects a separate contract.