<div align="center">
# simple-semaphore
[](https://docs.rs/simple-semaphore)
[](https://crates.io/crates/simple-semaphore)
[](https://github.com/kkrypt0nn/simple-semaphore/actions)
[](https://deps.rs/repo/github/kkrypt0nn/simple-semaphore)
[](https://discord.gg/mTBrXyWxAF)
[](https://github.com/kkrypt0nn/simple-semaphore/commits/main)
[](https://conventionalcommits.org/en/v1.0.0/)
</div>
---
A lightweight implementation of a Semaphore in Rust.
## Getting Started
### Installation
If you want to use this library for one of your projects, you can install it like any other Rust library
```shell
cargo add simple-semaphore
```
### Example Usage
Here a basic example on how to use the crate:
```rs
use simple_semaphore;
use std::thread;
use std::{sync::Arc, time::Duration};
fn main() {
let semaphore = simple_semaphore::Semaphore::new(2);
for _ in 0..5 {
let semaphore = Arc::clone(&semaphore);
thread::spawn(move || {
let permit = semaphore.acquire();
thread::sleep(Duration::from_millis(500));
drop(permit);
});
}
thread::sleep(Duration::from_millis(3000));
}
```
## License
This library was made with 💜 by Krypton and is under the [MIT License](./LICENSE.md).