PackageTrack
Sign in Get early access

kqueue

kqueue interface for BSDs

1.2.1 66M downloads/mo #1041 most downloaded on crates.io source

What this package is like to depend on

Last release 19 days ago

04 Aug 2026

Release timing varies

gaps range from 2 weeks to 1.7 years

Most releases are documented

notes for 13 of 21 stable releases

Nothing withdrawn

no release was ever pulled

10 years old

21 releases · first in 2017

2 releases in the last 12 months

see the full history below

Release timeline

21 releases · Jan 2017 to Aug 2026
2018 2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 21
  1. 1.2.1 04 Aug 2026
    Release notes

    Adds:

    • Decoalesces events that are collapsed by kevent(2). Sometimes events like NOTE_EXEC and NOTE_FORK will arrive in one event, and we'd only surface one of them. Now, we surface both. This comes with the side effect that we will sometimes surface events the user didn't necessarily ask for, since bundled events will be bundled if only one of the filter flags was passed in.
    • Reduced code size in add_filename/remove_filename
    • Vnode is now comparable
    • Added Truncate support on OpenBSD
    • Added Trackerr support on all platforms
    Open source →
  2. 1.2.0 31 May 2026
    Release notes

    Adds:

    • Bump kqueue-sys to 1.1.1
    • Handle NOTE_READ on FreeBSD
    • Better documentation of errors
    • Add fd-based benchmarks

    Fixes:

    • Remove all panics, returning errors instead
    • Do not close File or fd's on drop, since we do not own them
    • Vnode::Extend has nothing to do with truncate(2)
    • Allow removal of non-utf8 pathnames (although imperfect)
    • Remove a bunch of unchecked casts and fail if data is out-of-range
    • from_error, is_err, poll, poll_forever and iter are #[must_use]
    • Internally use OwnedFd to track our kqueue object
    • Ident.PartialEq did not compare enum discriminants
    • Track watches in a HashMap, leading to much faster remove_* performance
    • Preallocate internal vec when watching objects, reduces memory usage and increase perf
    • Fast fail returning events from unstarted Watchers
    • Don't unconditionally declare ourselves as started
    • Don't include drops in benchmark results
    Open source →
  3. 1.1.1 06 May 2025
    Release notes

    Fixes:

    • Don't try and remove file descriptor 0 when removing unwatched filenames
    Open source →
  4. 1.1.0 05 May 2025
    Release notes

    Adds:

    • Better error messages for panics
    • Rust Edition 2021

    Fixes:

    • Don't leak file descriptors when removing filenames from being watched
    • Reduce memory usage when starting a new watcher
    • Don't leak file descriptors when removing fd's from being watched (see commit for rationale)
    Open source →
  5. 1.0.8 06 Aug 2023
    Release notes

    Adds:

    • ios support

    Fixes:

    • panic on overflow on more than max 32bit files
    Open source →
  6. 1.0.7 16 Oct 2022
    Release notes

    Fixes:

    • Fixes broken 32bit builds by matching timespec defs to libc
    Open source →
  7. 1.0.6 28 Apr 2022
    Release notes

    Fixes:

    • marks Vnode enum non_exhaustive to fix backwards compatibility in 1.x
    Open source →
  8. 1.0.5 10 Apr 2022
    Release notes

    Adds:

    • docs.rs support
    • added new enum variants specific to FreeBSD (broke backwards compatibility)

    Fixes:

    • Fixes broken 32bit builds
    Open source →
  9. 1.0.4 09 Aug 2021
    Release notes

    Fixes:

    • Fixes broken NetBSD build
    Open source →
  10. 1.0.3 29 Jan 2021
    Release notes

    Adds:

    • #6: Adds a new Watcher.poll_forever() method which blocks on new events. This works around buggy behavior in the original Watcher.poll() method.
    • !3: Adds an implementation for std::os::unix::io::AsRawFd for Watcher for nested kqueues.
    Open source →
  11. 1.0.2 04 Oct 2020
    Release notes
    • Fixed #4: Fix bug where wrong data types were used on i386 FreeBSD
    Open source →
  12. 1.0.1 16 Aug 2020
    Release notes
    • Merged !1 as a fix for #3. We properly fill in the ext field for kqueue extensions on FreeBSD.
    Open source →
  13. 1.0.0 02 Aug 2020
    Release notes

    Breaking changes

    • Bumped bitflags in rust-kqueue-sys: Now all bitflag constants must be qualified:

    EV_DELETE -> EventFlag::EV_DELETE NOTE_WRITE > FilterFlag::NOT_WRITE

    Other changes

    • 2018 edition and clippy changes
    Open source →
  14. 0.2.3 29 Jan 2020

    Nothing published for this version

  15. 0.2.2 29 Mar 2019

    Nothing published for this version

  16. 0.2.1 28 Feb 2017

    Nothing published for this version

  17. 0.2.0 26 Feb 2017

    Nothing published for this version

  18. 0.1.3 24 Feb 2017

    Nothing published for this version

  19. 0.1.2 02 Feb 2017

    Nothing published for this version

  20. 0.1.1 15 Jan 2017

    Nothing published for this version

  21. 0.1.0 15 Jan 2017

    Nothing published for this version

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