#thread #scheduler #scheduling #parallel

nightly topograph

A miniscule thread pool and toposort scheduler

6 releases (3 breaking)

0.3.1-alpha.1 Jan 11, 2022
0.3.0-alpha.1 Jan 4, 2022
0.2.1-alpha.1 Dec 15, 2021
0.2.0-alpha.1 Nov 20, 2021
0.0.0 Nov 19, 2021

#53 in #scheduling


Used in latke

MIT/Apache

38KB
684 lines

topograph - A tiny thread pool and toposort implmentation

No diving allowed!

WARNING: The 0.2.x-alpha* versions use the generic_associated_types feature gate. I apologize.

This is a quick and dirty thread-scheduling library I wrote up for handling non-async jobs in a concurrent queue. For this specific use case, rayon and tokio, which are both fantastic packages, didn't quite do what I wanted.

For more info on this package, check out the docs.


lib.rs:

A tiny library for doing basic synchronous thread scheduling.

This crate contains two main components, each with their own (slightly different) use cases:

  • threaded is a simple FIFO thread pool for basic work queue operations
  • graph is a topological sort implementation for handling more complex cases with inter-task dependencies

The documentation for each of the above modules contains example code for each use case. Common traits

Dependencies

~1–1.9MB
~36K SLoC