Skip to content

A Tokio-powered asynchronous gate

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

babichjacob/async-gate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚧 Async Gate

This Rust library is an asynchronous "gate" that can be waited to be raised or lowered, as controlled by a corresponding "lever".

💻 Installation

This crate is published to crates.io as async-gate, so you can do

cargo add async-gate

to add it to your project's dependencies.

🛠 Usage

You probably don't want to use this if you aren't me; the code is clunky and only moderately documented and tested. You might benefit more from using a plain tokio::sync::watch channel with your own layer of logic on top.

😵 Help! I have a question

Create an issue and I'll try to help.

😡 Fix! There is something that needs improvement

Create an issue or pull request and I'll try to fix.

📄 License

Licensed under either of:

at your option.

🙏 Attribution

This implementation is heavily borrowed from @EFanZh's contributions in this Rust forum post.

The idea is highly inspired by Python's asyncio.Event, but a gate can be waited for to become 'clear' too (not just 'set').

This library is implemented with Tokio's watch channel.

I also developed awaitable-bool right after making async-gate. That unifies changing the value of the bool and waiting for value changes into a single type (AwaitableBool). It is simpler than this crate.

This README was generated with ❤️ by readme-md-generator

About

A Tokio-powered asynchronous gate

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Languages