oxdock-pipe 0.17.0-alpha

Anonymous pipe backends for OxDock: spillable script buffers, OS pairs, and owned handle slots.
Documentation
  • Coverage
  • 100%
    84 out of 84 items documented0 out of 60 items with examples
  • Size
  • Source code size: 49.3 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.4 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 6s Average build duration of successful builds.
  • all releases: 6s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • jzombie/rust-oxdock
    1 0 43
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • jzombie

oxdock-pipe

Anonymous pipe backends for OxDock: spillable script buffers, OS pairs, and owned handle slots.

Part of the OxDock workspace.

Anonymous pipe backends. Handles start unbound and materialize lazily on first binding (script buffers by default, OS kernel pairs for pure single-RUN pipelines); cloning a handle shares the backend, and the last drop closes. Under Miri everything stays on script pipes.

Layout

  • spill: the spillable byte buffer. Bytes accumulate in memory and spill to a guarded temp file past the configured threshold, with a backlog cap bounding disk use. Thresholds ride on the value so tests construct small-threshold buffers explicitly; disk spilling is compiled out under Miri.
  • backend: the script-pipe backend. One PipeInner holds the buffer plus writer/keeper accounting with blocking reads, timeout-bounded reads for bridge workers, and explicit close; KeeperGuard pins transient gaps for background tasks.
  • slot: owned handles and OS pairs. A PipeHandle is a mutex cell over a Slot that starts Unbound and decides its kind once, under the cell lock, on first binding. OS pairs sit behind take-once slots: the first producer and consumer each take their half, and any further take bails instead of stealing the descriptor.

There is no central pipe index anywhere: resolution, keepers, peeks, and diagnostics (inspect, peek, script_backend) all operate on handles already in hand. SharedInput / SharedOutput aliases live here and are re-exported from oxdock-process, keeping this crate a leaf (anyhow + oxdock-fs only) so oxdock-parser pipe values can own handles without a dependency cycle.

License

oxdock-pipe is distributed under the terms of the Apache License (Version 2.0).