0.6.23 (Dec 01, 2020)

Changed

Fixed

0.6.22 (May 01, 2020)

Added

  • Add support for illumos target (#1294)

0.6.21 (November 27, 2019)

Fixed

  • remove = dependency on cfg-if.

0.6.20 (November 21, 2019)

Fixed

  • Use default IOCP concurrency value (#1161).
  • setting FD_CLOEXEC in pipe (#1095).

0.6.19 (May 28, 2018)

Fixed

  • Do not trigger HUP events on kqueue platforms (#958).

0.6.18 (May 24, 2018)

Fixed

  • Fix compilation on kqueue platforms with 32bit C long (#948).

0.6.17 (May 15, 2018)

Fixed

  • Don't report RDHUP as HUP (#939)
  • Fix lazycell related compilation issues.
  • Fix EPOLLPRI conflicting with READABLE
  • Abort process on ref count overflows

Added

  • Define PRI on all targets

0.6.16 (September 5, 2018)

  • Add EPOLLPRI readiness to UnixReady on supported platforms (#867)
  • Reduce spurious awaken calls (#875)

0.6.15 (July 3, 2018)

  • Implement Evented for containers (#840).
  • Fix android-aarch64 build (#850).

0.6.14 (March 8, 2018)

  • Add Poll::poll_interruptible (#811)
  • Add Ready::all and usize conversions (#825)

0.6.13 (February 5, 2018)

  • Fix build on DragonFlyBSD.
  • Add TcpListener::from_std that does not require the socket addr.
  • Deprecate TcpListener::from_listener in favor of from_std.

0.6.12 (January 5, 2018)

  • Add TcpStream::peek function (#773).
  • Raise minimum Rust version to 1.18.0.
  • Poll: retry select() when interrupted by a signal (#742).
  • Deprecate Events index access (#713).
  • Add Events::clear (#782).
  • Add support for lio_listio (#780).

0.6.11 (October 25, 2017)

  • Allow register to take empty interest (#640).
  • Fix bug with TCP errors on windows (#725).
  • Add TcpListener::accept_std (#733).
  • Update IoVec to fix soundness bug -- includes behavior change. (#747).
  • Minimum Rust version is now 1.14.0.
  • Fix Android x86_64 build.
  • Misc API & doc polish.

0.6.10 (July 27, 2017)

  • Experimental support for Fuchsia
  • Add only_v6 option for UDP sockets
  • Fix build on NetBSD
  • Minimum Rust version is now 1.13.0
  • Assignment operators (e.g. |=) are now implemented for Ready

0.6.9 (June 7, 2017)

  • More socket options are exposed through the TCP types, brought in through the net2 crate.

0.6.8 (May 26, 2017)

  • Support Fuchia
  • POSIX AIO support
  • Fix memory leak caused by Register::new2
  • Windows: fix handling failed TCP connections
  • Fix build on aarch64-linux-android
  • Fix usage of O_CLOEXEC with SETFL

0.6.7 (April 27, 2017)

  • Ignore EPIPE coming out of kevent
  • Timer thread should exit when timer is dropped.

0.6.6 (March 22, 2017)

  • Add send(), recv() and connect() to UDPSocket.
  • Fix bug in custom readiness queue
  • Move net types into net module

0.6.5 (March 14, 2017)

  • Misc improvements to kqueue bindings
  • Add official support for iOS, Android, BSD
  • Reimplement custom readiness queue
  • Poll is now Sync
  • Officially deprecate non-core functionality (timers, channel, etc...)
  • Registration now implements Evented
  • Fix bug around error conditions with connect on windows.
  • Use iovec crate for scatter / gather operations
  • Only support readable and writable readiness on all platforms
  • Expose additional readiness in a platform specific capacity

0.6.4 (January 24, 2017)

  • Fix compilation on musl
  • Add TcpStream::from_stream which converts a std TCP stream to Mio.

0.6.3 (January 22, 2017)

  • Implement readv/writev for TcpStream, allowing vectored reads/writes to work across platforms
  • Remove nix dependency
  • Implement Display and Error for some channel error types.
  • Optimize TCP on Windows through SetFileCompletionNotificationModes

0.6.2 (December 18, 2016)

  • Allow registration of custom handles on Windows (like EventedFd on Unix)
  • Send only one byte for the awakener on Unix instead of four
  • Fix a bug in the timer implementation which caused an infinite loop

0.6.1 (October 30, 2016)

  • Update dependency of libc to 0.2.16
  • Fix channel dec logic
  • Fix a timer bug around timeout cancellation
  • Don't allocate buffers for TCP reads on Windows
  • Touched up documentation in a few places
  • Fix an infinite looping timer thread on OSX
  • Fix compile on 32-bit OSX
  • Fix compile on FreeBSD

0.6.0 (September 2, 2016)

  • Shift primary API towards Poll
  • EventLoop and types to deprecated mod. All contents of the deprecated mod will be removed by Mio 1.0.
  • Increase minimum supported Rust version to 1.9.0
  • Deprecate unix domain socket implementation in favor of using a version external to Mio. For example: https://github.com/alexcrichton/mio-uds.
  • Remove various types now included in std
  • Updated TCP & UDP APIs to match the versions in std
  • Enable implementing Evented for any type via Registration
  • Rename IoEvent -> Event
  • Access Event data via functions vs. public fields.
  • Expose Events as a public type that is passed into Poll
  • Use std::time::Duration for all APIs that require a time duration.
  • Polled events are now retrieved via Events type.
  • Implement std::error::Error for TimerError
  • Relax Send bound on notify messages.
  • Remove Clone impl for Timeout (future proof)
  • Remove mio::prelude
  • Remove mio::util
  • Remove dependency on bytes

0.5.0 (December 3, 2015)

  • Windows support (#239)
  • NetBSD support (#306)
  • Android support (#295)
  • Don't re-export bytes types
  • Renamed EventLoop::register_opt to EventLoop::register (#257)
  • EventLoopConfig is now a builder instead of having public struct fields. It is also no longer Copy. (#259)
  • TcpSocket is no longer exported in the public API (#262)
  • Integrate with net2. (#262)
  • TcpListener now returns the remote peer address from accept as well (#275)
  • The UdpSocket::{send_to, recv_from} methods are no longer generic over Buf or MutBuf but instead take slices directly. The return types have also been updated to return the number of bytes transferred. (#260)
  • Fix bug with kqueue where an error on registration prevented the changelist from getting flushed (#276)
  • Support sending/receiving FDs over UNIX sockets (#291)
  • Mio's socket types are permanently associated with an EventLoop (#308)
  • Reduce unnecessary poll wakeups (#314)

0.4.1 (July 21, 2015)

  • [BUGFIX] Fix notify channel concurrency bug (#216)

0.4.0 (July 16, 2015)

  • [BUGFIX] EventLoop::register requests all events, not just readable.
  • [BUGFIX] Attempting to send a message to a shutdown event loop fails correctly.
  • [FEATURE] Expose TCP shutdown
  • [IMPROVEMENT] Coalesce readable & writable into ready event (#184)
  • [IMPROVEMENT] Rename TryRead & TryWrite function names to avoid conflict with std.
  • [IMPROVEMENT] Provide TCP and UDP types in Mio (path to windows #155)
  • [IMPROVEMENT] Use clock_ticks crate instead of time (path to windows #155)
  • [IMPROVEMENT] Move unix specific features into mio::unix module
  • [IMPROVEMENT] TcpListener sets SO_REUSEADDR by default