blocking-permit 1.3.1

Permits and a thread pool for blocking operations
Documentation
# blocking-permit

[![Rustdoc](https://docs.rs/blocking-permit/badge.svg)](https://docs.rs/blocking-permit)
[![Change Log](https://img.shields.io/crates/v/blocking-permit.svg?maxAge=3600&label=change%20log&color=9cf)](https://github.com/dekellum/blocking-permit/blob/master/CHANGELOG.md)
[![crates.io](https://img.shields.io/crates/v/blocking-permit.svg?maxAge=3600)](https://crates.io/crates/blocking-permit)
[![CI Status](https://github.com/dekellum/blocking-permit/workflows/CI/badge.svg?branch=master)](https://github.com/dekellum/blocking-permit/actions?query=workflow%3ACI)

This crate provides:

* A specialized, custom thread pool, `DispatchPool`, for offloading
  blocking or otherwise long running operations from a main or reactor
  threads.

* A `BlockingPermit` for limiting the number of concurrent blocking operations
  via a `Semaphore` type.

* A `Cleaver` for splitting `Stream` buffers into more manageable sizes.

* A `YieldStream` for yielding between `Stream` items.

## Minimum supported rust version

MSRV := 1.45.2

The crate will fail fast on any lower rustc (via a build.rs version
check) and is also CI tested on this version.

## License

This project is dual licensed under either of following:

* The Apache License, version 2.0 ([LICENSE-APACHE]LICENSE-APACHE
  or http://www.apache.org/licenses/LICENSE-2.0)

* The MIT License ([LICENSE-MIT]LICENSE-MIT
  or http://opensource.org/licenses/MIT)

### Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in blocking-permit by you, as defined by the Apache License, shall be
dual licensed as above, without any additional terms or conditions.