https://github.com/alecmocatta/notifier
A wrapper around platform event notification APIs that can also handle high-resolution timer events.
https://github.com/alecmocatta/notifier
epoll event-notification iocp kqueue rust
Last synced: 2 months ago
JSON representation
A wrapper around platform event notification APIs that can also handle high-resolution timer events.
- Host: GitHub
- URL: https://github.com/alecmocatta/notifier
- Owner: alecmocatta
- License: apache-2.0
- Created: 2018-08-02T16:43:37.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-07-12T05:12:38.000Z (almost 4 years ago)
- Last Synced: 2025-03-12T19:45:58.393Z (3 months ago)
- Topics: epoll, event-notification, iocp, kqueue, rust
- Language: Rust
- Homepage:
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE.txt
Awesome Lists containing this project
README
# notifier
[](https://crates.io/crates/notifier)
[](#License)
[](https://dev.azure.com/alecmocatta/notifier/_build/latest?branchName=master)[Docs](https://docs.rs/notifier/0.1.3)
A wrapper around platform event notification APIs (currently via [mio](https://github.com/carllerche/mio)) that can also handle high-resolution timer events, including those set (on another thread) *during* a `notifier.wait()` call.
Delivers **edge-triggered** notifications for file descriptor state changes (corresponding to `mio::Ready::readable() | mio::Ready::writable() | mio::unix::UnixReady::hup() | mio::unix::UnixReady::error()`) as well as elapsing of instants.
It's designed to be used in conjunction with a library that exhaustively collects events (e.g. connected, data in, data available to be written, remote closed, bytes acked, connection errors) upon each edge-triggered notification – for example [`tcp_typed`](https://github.com/alecmocatta/tcp_typed).
## Note
Currently doesn't support Windows.
## License
Licensed under either of* Apache License, Version 2.0, ([LICENSE-APACHE.txt](LICENSE-APACHE.txt) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT.txt](LICENSE-MIT.txt) or http://opensource.org/licenses/MIT)at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.