PackageTrack
Sign in Get early access

polling

Portable interface to epoll, kqueue, event ports, and IOCP

3.11.0 229M downloads/mo #449 most downloaded on crates.io smol-rs/polling

What this package is like to depend on

Last release 11 months ago

14 Sep 2025

Release timing varies

gaps range from 2 weeks to 7 months

Nearly every release is documented

notes for 47 of 47 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

47 releases · first in 2020

1 release in the last 12 months

see the full history below

Release timeline

47 releases · Aug 2020 to Sep 2025
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 47
  1. 3.11.0 14 Sep 2025
    Release notes
    • Bump MSRV to 1.71. (#251)
    • Update to windows-sys v0.61. (#251)
    Open source →
    Release notes
    • Bump MSRV to 1.71. (#251)
    • Update to windows-sys v0.61. (#251)
    Open source →
  2. 3.10.0 03 Aug 2025
    Release notes
    • Add wait_deadline function. (#226)
    Open source →
    Release notes
    • Add wait_deadline function. (#226)
    Open source →
  3. 3.9.0 19 Jul 2025
    Release notes
    • Add a new optional tracing feature. When enabled, this feature adds logging
      to the implementation. By default it is disabled. (#238)
    • Update to windows-sys v0.60. (#239)
    Open source →
    Release notes
    • Add a new optional tracing feature. When enabled, this feature adds logging to the implementation. By default it is disabled. (#238)
    • Update to windows-sys v0.60. (#239)
    Open source →
  4. 3.8.0 25 May 2025
    Release notes
    • Implement AsRawFd and AsFd for Poller on Redox OS. (#235)
    • Update hermit-abi to v0.5.0. (#229)
    • Update rustix to 1.0 (#230). This also fixed a bug in wait which (contradicting docs) cleared the events vector instead of appending to it.
    • Add support for QNX. (#201)
    Open source →
    Release notes
    • Implement AsRawFd and AsFd for Poller on Redox OS. (#235)
    • Update hermit-abi to v0.5.0. (#229)
    • Update rustix to 1.0 (#230). This also fixed a bug in wait which (contradicting docs) cleared the events vector instead of appending to it.
    • Add support for QNX. (#201)
    Open source →
  5. 3.7.4 07 Nov 2024
    Release notes
    • Add support for visionOS. (#217)
    • Fix typos in documentation. (#216)
    Open source →
    Release notes
    • Add support for visionOS. (#217)
    • Fix typos in documentation. (#216)
    Open source →
  6. 3.7.3 10 Aug 2024
    Release notes
    • Update to windows-sys v0.59. (#214)
    Open source →
    Release notes
    • Update to windows-sys v0.59. (#214)
    Open source →
  7. 3.7.2 15 Jun 2024
    Release notes
    • Update hermit-abi to v0.4.0. (#209)
    Open source →
    Release notes
    • Update hermit-abi to v0.4.0. (#209)
    Open source →
  8. 3.7.1 01 Jun 2024
    Release notes
    • Fix a typo in Event::is_err(). (#204)
    Open source →
    Release notes
    • Fix a typo in Event::is_err(). (#204)
    Open source →
  9. 3.7.0 22 Apr 2024
    Release notes
    • Add support for the PS Vita as a platform. (#160)
    Open source →
    Release notes
    • Add support for the PS Vita as a platform. (#160)
    Open source →
  10. 3.6.0 24 Mar 2024
    Release notes
    • Add an is_err method to Event to tell when an error has occurred. (#189)
    • Deprecate the is_connect_failed function. (#189)
    • Add support for HermitOS to polling. (#194)
    Open source →
    Release notes
    • Add an is_err method to Event to tell when an error has occurred. (#189)
    • Deprecate the is_connect_failed function. (#189)
    • Add support for HermitOS to polling. (#194)
    Open source →
  11. 3.5.0 18 Feb 2024
    Release notes
    • Use the epoll backend when RedoxOS is enabled. (#190)
    Open source →
  12. 3.4.0 06 Feb 2024
    Release notes
    • Add the ability to identify whether socket connection has failed. (#185)
    • On BSD, add the ability to wait on a process by its PID. Previously, it was only possible to wait on a process by a Child object. (#180)
    • On ESP-IDF, annotate eventfd initialization failures with a message indicating the source of those failures. (#186)
    Open source →
  13. 3.3.2 14 Jan 2024
    Release notes
    • When AFD fails to initialize, the resulting error now references the underlying system error. (#174)
    Open source →
  14. 3.3.1 24 Nov 2023
    Release notes
    • Bump windows-sys to v0.52.0. (#169)
    Open source →
  15. 3.3.0 29 Oct 2023
    Release notes
    • Automatically restarts polling when ErrorKind::Interrupted is returned, rather than relying on the user to handle it. (#164)
    • Fix bad link in documentation for Poller::wait(). (#163)
    Open source →
  16. 3.2.0 02 Oct 2023
    Release notes
    • The kqueue backend previously allowed the following operations that other backends forbid. Now these operations result in an error: (#153)
      • Inserting a source that was already inserted.
      • Modifying/deleting a source that was not already inserted.
    • Add support for Haiku OS. (#154)
    Open source →
  17. 3.1.0 25 Sep 2023
    Release notes
    • Add an Event::new() constructor to simplify creating Events. (#149)
    Open source →
  18. 3.0.0 05 Sep 2023
    Release notes
    • Replace libc in all backends with the rustix crate (#108).
    • Use tracing instead of log for logging (#119).
    • Breaking: Rework the API to use I/O safety. Note that this makes several previously safe functions unsafe. (#123)
    • Add support for the ESP-IDF platform. (#128)
    • Breaking: Make Event partially opaque, and create a new Events struct for holding events. (#133)
    • Add support for running polling in Linux containers without eventfd available. (#134)
    • Specify the behavior when registered in multiple Pollers. (#136)
    • Breaking: Use c_int from the standard library in polling::os::kqueue instead of defining our own. (#143)
    • Breaking: Remove the useless std feature. (#147)
    Open source →
  19. 2.8.0 20 Apr 2023
    Release notes
    • Add functionality for posting events to the IOCP. (#101)
    Open source →
  20. 2.7.0 07 Apr 2023
    Release notes
    • Add edge/oneshot combination mode. (#96)
    • Update windows-sys requirement from 0.45 to 0.48. (#103)
    Open source →
  21. 2.6.0 08 Mar 2023
    Release notes
    • Add level and edge triggered modes to the poller (#59)
    • Support tvOS and watchOS (#60)
    • Prevent large timeouts from causing panics on certain backends (#71)
    • For certain BSDs, use EVFILT_USER to wake up the poller instead of a pipe (#73)
    • For Solaris/illumos, use port_send to wake up the poller instead of a pipe (#74)
    • Update windows_sys from 0.42 to 0.45 (#80)
    • Expose other kqueue filter types (#83)
    • Replace the Windows backend with a hand-written version, rather than bringing in a C dependency (#88)
    Open source →
  22. 2.5.2 13 Dec 2022
    Release notes
    • Update use of libc::timespec to prepare for future libc version (#55)
    • Update use of libc::kevent to prepare for future libc version (#56)
    • Add error message for Wepoll (#54)
    Open source →
  23. 2.5.1 29 Nov 2022
    Release notes
    • Fix the build error with MSRV on Windows
    Open source →
  24. 2.5.0 27 Nov 2022
    Release notes
    • Switch from winapi to windows-sys (#47)
    Open source →
  25. 2.4.0 23 Oct 2022
    Release notes
    • Fix the build error on illumos and Solaris (#43)
    • Bump MSRV to 1.47 (#40)
    • Optimize Poller internal representation (#40)
    Open source →
  26. 2.3.0 21 Aug 2022
    Release notes
    • Implement AsRawFd for Poller on most Unix systems (#39)
    • Implement AsRawHandle for Poller on Windows (#39)
    • Implement I/O safety traits on Rust 1.63+ (#39)
    Open source →
  27. 2.2.0 10 Nov 2021
    Release notes
    • Support VxWorks, Fuchsia and other Unix systems by using poll. (#26)
    Open source →
  28. 2.1.0 14 Jun 2021
    Release notes
    • Switch from wepoll-sys to wepoll-ffi.
    Open source →
  29. 2.0.3 20 Mar 2021
    Release notes
    • Update cfg-if dependency to 1.
    Open source →
  30. 2.0.2 18 Oct 2020
    Release notes
    • Replace manual pointer conversion with as_ptr() and as_mut_ptr().
    Open source →
  31. 2.0.1 09 Oct 2020
    Release notes
    • Minor docs improvements.
    Open source →
  32. 2.0.0 03 Oct 2020
    Release notes
    • Add Event argument to Poller::insert().
    • Don't put fd/socket in non-blocking mode upon insertion.
    • Rename insert()/interest()/remove() to add()/modify()/delete().
    • Replace wepoll-sys-stjepang with an wepoll-sys.
    Open source →
  33. 1.1.0 20 Sep 2020
    Release notes
    • Add "std" cargo feature.
    Open source →
  34. 1.0.3 16 Sep 2020
    Release notes
    • Remove libc dependency on Windows.
    Open source →
  35. 1.0.2 15 Sep 2020
    Release notes
    • Bump MSRV to 1.40.0
    • Replace the epoll_create1 hack with a cleaner solution.
    • Pass timeout to epoll_wait to support systems without timerfd.
    Open source →
  36. 1.0.1 07 Sep 2020
    Release notes
    • Fix a typo in the readme.
    Open source →
  37. 1.0.0 07 Sep 2020
    Release notes
    • Stabilize.
    Open source →
  38. 0.1.9 06 Sep 2020
    Release notes
    • Fix compilation on x86_64-unknown-linux-gnux32
    Open source →
  39. 0.1.8 03 Sep 2020
    Release notes
    • Replace log::debug! with log::trace!.
    Open source →
  40. 0.1.7 01 Sep 2020
    Release notes
    • Specify oneshot mode in epoll/wepoll at insert.
    Open source →
  41. 0.1.6 29 Aug 2020
    Release notes
    • Add logging.
    Open source →
  42. 0.1.5 15 Aug 2020
    Release notes
    • Fix a bug where epoll would block when the timeout is set to zero.
    • More tests.
    Open source →
  43. 0.1.4 14 Aug 2020
    Release notes
    • Optimize notifications.
    • Fix a bug in timeouts on Windows where it would trigger too early.
    • Support sub-nanosecond precision on Linux/Android.
    Open source →
  44. 0.1.3 12 Aug 2020
    Release notes
    • Improve error handling around event ports fcntl
    Open source →
  45. 0.1.2 11 Aug 2020
    Release notes
    • Add support for event ports (illumos and Solaris)
    Open source →
  46. 0.1.1 08 Aug 2020
    Release notes
    • Improve documentation
    • Fix a bug in Event::none().
    Open source →
  47. 0.1.0 06 Aug 2020
    Release notes
    • Initial version
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive