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
Releases
latest 47-
3.11.014 Sep 2025 -
3.10.003 Aug 2025 -
3.9.019 Jul 2025Release notes
Open source →- Add a new optional
tracingfeature. When enabled, this feature adds logging to the implementation. By default it is disabled. (#238) - Update to
windows-sysv0.60. (#239)
- Add a new optional
-
3.8.025 May 2025Release notes
Open source →- Implement
AsRawFdandAsFdforPolleron Redox OS. (#235) - Update
hermit-abito v0.5.0. (#229) - Update
rustixto 1.0 (#230). This also fixed a bug inwaitwhich (contradicting docs) cleared the events vector instead of appending to it. - Add support for QNX. (#201)
- Implement
-
3.7.407 Nov 2024 -
3.7.310 Aug 2024 -
3.7.215 Jun 2024 -
3.7.101 Jun 2024 -
3.7.022 Apr 2024 -
3.6.024 Mar 2024Release notes
Open source →- Add an
is_errmethod toEventto tell when an error has occurred. (#189) - Deprecate the
is_connect_failedfunction. (#189) - Add support for HermitOS to
polling. (#194)
- Add an
-
3.5.018 Feb 2024 -
3.4.006 Feb 2024Release notes
Open source →- 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
Childobject. (#180) - On ESP-IDF, annotate
eventfdinitialization failures with a message indicating the source of those failures. (#186)
-
3.3.214 Jan 2024Release notes
Open source →- When AFD fails to initialize, the resulting error now references the underlying system error. (#174)
-
3.3.124 Nov 2023 -
3.3.029 Oct 2023Release notes
Open source →- Automatically restarts polling when
ErrorKind::Interruptedis returned, rather than relying on the user to handle it. (#164) - Fix bad link in documentation for
Poller::wait(). (#163)
- Automatically restarts polling when
-
3.2.002 Oct 2023Release notes
Open source →- The
kqueuebackend 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)
- The
-
3.1.025 Sep 2023 -
3.0.005 Sep 2023Release notes
Open source →- Replace
libcin all backends with therustixcrate (#108). - Use
tracinginstead oflogfor 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
Eventpartially opaque, and create a newEventsstruct for holding events. (#133) - Add support for running
pollingin Linux containers withouteventfdavailable. (#134) - Specify the behavior when registered in multiple
Pollers. (#136) - Breaking: Use
c_intfrom the standard library inpolling::os::kqueueinstead of defining our own. (#143) - Breaking: Remove the useless
stdfeature. (#147)
- Replace
-
2.8.020 Apr 2023 -
2.7.007 Apr 2023Release notes
Open source →- Add edge/oneshot combination mode. (#96)
- Update windows-sys requirement from 0.45 to 0.48. (#103)
-
2.6.008 Mar 2023Release notes
Open source →- 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_USERto wake up the poller instead of a pipe (#73) - For Solaris/illumos, use
port_sendto wake up the poller instead of a pipe (#74) - Update
windows_sysfrom 0.42 to 0.45 (#80) - Expose other
kqueuefilter types (#83) - Replace the Windows backend with a hand-written version, rather than bringing in a C dependency (#88)
-
2.5.213 Dec 2022Release notes
Open source →- Update use of
libc::timespecto prepare for future libc version (#55) - Update use of
libc::keventto prepare for future libc version (#56) - Add error message for Wepoll (#54)
- Update use of
-
2.5.129 Nov 2022 -
2.5.027 Nov 2022 -
2.4.023 Oct 2022Release notes
Open source →- Fix the build error on illumos and Solaris (#43)
- Bump MSRV to 1.47 (#40)
- Optimize
Pollerinternal representation (#40)
-
2.3.021 Aug 2022Release notes
Open source →- Implement
AsRawFdforPolleron most Unix systems (#39) - Implement
AsRawHandleforPolleron Windows (#39) - Implement I/O safety traits on Rust 1.63+ (#39)
- Implement
-
2.2.010 Nov 2021 -
2.1.014 Jun 2021 -
2.0.320 Mar 2021 -
2.0.218 Oct 2020 -
2.0.109 Oct 2020 -
2.0.003 Oct 2020Release notes
Open source →- Add
Eventargument toPoller::insert(). - Don't put fd/socket in non-blocking mode upon insertion.
- Rename
insert()/interest()/remove()toadd()/modify()/delete(). - Replace
wepoll-sys-stjepangwith anwepoll-sys.
- Add
-
1.1.020 Sep 2020 -
1.0.316 Sep 2020 -
1.0.215 Sep 2020Release notes
Open source →- Bump MSRV to 1.40.0
- Replace the
epoll_create1hack with a cleaner solution. - Pass timeout to
epoll_waitto support systems withouttimerfd.
-
1.0.107 Sep 2020 -
1.0.007 Sep 2020 -
0.1.906 Sep 2020 -
0.1.803 Sep 2020 -
0.1.701 Sep 2020 -
0.1.629 Aug 2020 -
0.1.515 Aug 2020Release notes
Open source →- Fix a bug where epoll would block when the timeout is set to zero.
- More tests.
-
0.1.414 Aug 2020Release notes
Open source →- Optimize notifications.
- Fix a bug in timeouts on Windows where it would trigger too early.
- Support sub-nanosecond precision on Linux/Android.
-
0.1.312 Aug 2020 -
0.1.211 Aug 2020 -
0.1.108 Aug 2020 -
0.1.006 Aug 2020