sluice

Asynchronous byte buffers and pipes for concurrent I/O programming.

MIT License

Downloads
6.4M
Stars
99
Committers
6

Bot releases are hidden (Show)

sluice - Update underlying channel implementation Latest Release

Published by sagebind about 3 years ago

Changed

  • Replace futures-channel with async-channel for the underlying channel implementation for pipes. This delivers slightly better performance and compile times. (#18, #19)
sluice - Race condition bugfix

Published by sagebind over 3 years ago

Fixed

  • Fix panic caused by race condition when writing while dropping reader. (#16)
sluice - Dependency trimming

Published by sagebind almost 4 years ago

Changed

  • Remove the futures-util dependency, which is a bit heavier than desired, and we didn't really need it anyway.
sluice - AsyncBufRead and dependency fix

Published by sagebind over 4 years ago

Added

  • PipeReader now also implements AsyncBufRead.(#8)

Fixed

  • Fix io feature of futures-util missing from dependencies, causing a compile error if the feature was not being implicitly enabled by some other dependency (like dev dependencies). (#10, #11) @ignatenkobrain
sluice - Dependency optimizations

Published by sagebind almost 5 years ago

Changed

  • Do not require default features for futures-util since we do not use them. (#7) @jakobhellermann
sluice - Futures upgrade

Published by sagebind almost 5 years ago

Changed

  • Upgraded from futures-preview to futures 0.3. This is a breaking change.
sluice - Bugfix for reading closed pipes

Published by sagebind about 5 years ago

Fixed

  • Fix a bug where reading from a pipe after already returning EOF would cause a panic. This was caused by Stream::poll_next used internally in the chunked implementation panicking after returning the final stream item, which it is allowed to do according to the current documentation. (#6)
sluice - Minor optimizations

Published by sagebind about 5 years ago

Improvements

  • Sluice now only depends on the futures sub-crates that it actually uses.
  • Add a slight optimization to the chunked pipe writer that checks if the pipe is closed first before writing. Before the optimization, we were first copying the entire write buffer to the pipe, and then discovering that the pipe is closed and returning an error.
sluice - Implement Debug for reader and writer

Published by sagebind over 5 years ago

Added

  • Added Debug implementations for PipeReader and PipeWriter.
sluice - BrokenPipe error on writer drop

Published by sagebind over 5 years ago

Fixed

  • Fix an issue where dropping the writer while some data still remained in the pipe caused the reader to return a BrokenPipe error instead of allowing you to drain the bytes in the pipe until empty.
sluice - 2018-08-09

Published by sagebind over 5 years ago

  • Added a new io module featuring in-memory pipes. These pipes work similar to I/O streams but are based on an atomic ring buffer internally.
sluice - 2018-08-03

Published by sagebind over 5 years ago

  • Fixed an issue when resizing an unbounded buffer that is empty that resulted in the buffer length being reported incorrectly.
sluice - 2018-08-02

Published by sagebind over 5 years ago

  • Fixed a logical error where pushing small amounts of data repeatedly into the buffer would overwrite existing data.
sluice - 2018-05-17

Published by sagebind over 5 years ago

0.2 is here! This release is a breaking change with API refactorings and improvements.

  • Refactored module hierarchy to make more sense and to leave room for more data structures in the future.
  • Add new traits for buffers that all buffer types can implement.
  • Add new bounded atomic buffer implementation.
sluice - 2018-02-24

Published by sagebind over 5 years ago

  • Fixed a critical logic error causing items to not be removable when the buffer length reached exactly the current capacity of the buffer.
sluice - 2018-02-24

Published by sagebind over 5 years ago

  • Initial release.