Rust bindings to the libevent async I/O framework.
use libevent::{Base, Interval};
let mut base = Base::new();
let mut count: usize = 0;
let timer = Interval::new(Duration::from_secs(1));
base.spawn(timer, move |_event| {
count += 1;
println!("count: {}", count);
})?;
base.run();
-
libclang
is required by bindgen which is used to generate the Rust bindings. See bindgen requirements for more information. Also ensure thatLIBCLANG_PATH
is set, as some systems do not do so by default.libclang
is only required ifbuildtime_bindgen
is enabled. -
cmake
if self-building via thebundled
feature. The current bundled release isrelease-2.1.11-stable
. -
pkg-config
if not self-building via thebundled
feature. -
buildtime_bindgen
is an optional feature, enabled by default, which indicates that the Rust libevent bindings should be generated at build time. -
LIBEVENT_SYS_BINDGEN_FILE
is an environment variable indicating the path of the file containing the pregenerated Rust bindings which must be populated whenbuildtime_bindgen
is not enabled, and it is only applicable in this case.
This crate is guaranteed to compile on stable Rust 1.70.0 and up. It might compile with older versions but that may change in any new patch release.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://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.