Releases
v0.11.0
- Introduce
class IO::Stream::ConnectionResetError < Errno::ECONNRESETto standardize connection reset error handling across different IO types.OpenSSL::SSL::SSLSocketraisesOpenSSL::SSL::SSLErroron connection reset, while other IO types raiseErrno::ECONNRESET.SSLErroris now rescued and re-raised asIO::Stream::ConnectionResetErrorfor consistency.
v0.10.0
- Rename
done?tofinished?for clarity and consistency.
v0.9.1
- Fix EOF behavior to match Ruby IO semantics:
read()returns empty string""at EOF whileread(size)returnsnilat EOF.
v0.9.0
- Add support for
bufferparameter inread,read_exactly, andread_partialmethods to allow reading into a provided buffer.
v0.8.0
- On Ruby v3.3+, use
IO#writedirectly instead ofIO#write_nonblock, for better performance. - Introduce support for
Readable#discard_untilmethod to discard data until a specific pattern is found.
v0.7.0
- Split stream functionality into separate
ReadableandWritablemodules for better modularity and composition. - Remove unused timeout shim functionality.
- 100% documentation coverage.
v0.6.1
- Fix compatibility with Ruby v3.3.0 - v3.3.6 where broken
@io.closecould hang.
v0.6.0
- Improve compatibility of
getsimplementation to better match Ruby's IO#gets behavior.
v0.5.0
- Add support for
read_until(limit:)parameter to limit the amount of data read. - Minor documentation improvements.
v0.4.3
- Add comprehensive tests for
buffered?method onSSLSocket. - Ensure TLS connections have correct buffering behavior.
- Improve test suite organization and readability.
v0.4.2
- Add external test suite for better integration testing.
- Update dependencies and improve code style with RuboCop.
v0.4.1
- Add compatibility fix for
SSLSocketraisingEBADFerrors. - Fix
IO#closehang issue in certain scenarios. - Add
#to_iomethod toIO::Stream::Bufferedfor better compatibility. - Modernize gem structure and dependencies.
v0.4.0
- Add convenient
IO.Stream()constructor method for creating buffered streams.
v0.3.0
- Add support for timeouts with compatibility shims for various IO types.
v0.2.0
- Prefer
write_nonblockinsyswriteimplementation for better non-blocking behavior. - Add test cases for crash scenarios.
v0.1.1
- Improve buffering compatibility by falling back to
sync=whenbuffered=is not available.
v0.1.0
- Rename
IO::Stream::BufferedStreamtoIO::Stream::Bufferedfor consistency. - Add comprehensive tests and improved OpenSSL support with compatibility shims.
- Improve compatibility with Darwin/macOS systems.
- Fix monkey patches for various IO types.
- Add support for
StringIO#buffered?method.
v0.0.1
- Initial release with basic buffered stream functionality.
- Provide
IO::Stream::Bufferedclass for efficient buffered I/O operations. - Add
readable?method to check stream readability status. - Include basic test suite.