#thread #numbers #unix #client #gnu #env #jobserver

jobslot

An implementation of the GNU make jobserver for Rust

14 releases

0.2.19 Jul 31, 2024
0.2.17 Mar 17, 2024
0.2.14 Nov 16, 2023
0.2.11 Apr 15, 2023
0.2.8 Nov 23, 2022

#41 in Concurrency

Download history 11264/week @ 2024-08-21 9009/week @ 2024-08-28 14161/week @ 2024-09-04 12331/week @ 2024-09-11 14086/week @ 2024-09-18 13212/week @ 2024-09-25 14627/week @ 2024-10-02 13643/week @ 2024-10-09 15422/week @ 2024-10-16 15297/week @ 2024-10-23 15445/week @ 2024-10-30 18514/week @ 2024-11-06 17284/week @ 2024-11-13 18495/week @ 2024-11-20 16521/week @ 2024-11-27 14661/week @ 2024-12-04

71,200 downloads per month
Used in 8 crates (3 directly)

MIT/Apache

62KB
1K SLoC

jobslot

An implementation of the GNU make jobserver for Rust

CI

Crates.io

Documentation

Advantages over jobserver?

  • jobslot contains bug fix for Client::configure is unsafe
  • jobslot removed use of signal handling in the helper thread on unix
  • jobslot uses windows-sys on windows instead of manually declaring bindings (some of the bindings seem to be wrong)
  • jobslot uses getrandom on windows instead of making homebrew one using raw windows api
  • jobslot::Client::from_env can be called any number of times on Windows and Unix.

Usage

First, add this to your Cargo.toml:

[dependencies]
jobslot = "0.2"

Use of this crate in rustc

This crate uses getrandom v0.2.7 on windows. If you want to use this crate in rustc, make sure to bump getrandom to v0.2 to avoid pulling in different major versions of the same crate.

License

This project is licensed under either of

at your option.

Contribution

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

Dependencies

~0.3–10MB
~96K SLoC