Skip to content
/ libmt Public

The project provides common constructs that are useful for multithreading.

License

Notifications You must be signed in to change notification settings

afsong/libmt

Repository files navigation

libmt

The project provides common constructs that are useful for multithreading.

GitHub release (latest by date)

shields.io

GitHub

Actions Status

Actions Status

shields.io

codecov

codeql

What is it??

If you are tired of reinventing the wheel every time you write a small multithreaded program, because STL doesn't have stuff like thread pools, circular buffers, or a job queue, libmt can solve your problems! If you want a minimalistic, modern C++20 compatible, and low-overhead multithreaded library, take a look inside. We also support different build systems including CMake and Conan!

How to use the library

Everything in libmt resides in the mt namespace. For instance, if you'd like to get started with a multi-purpose job queue, you'd have to do this in your code:

#include <job_queue.hpp>

struct Widget {
    // some information here
};

int main()
{
    mt::job_queue<Widget> jq(10);

    // start using jq here :)
}

For more detailed examples, check out the docs page linked above.

How to download??

libmt is packaged by Conan and deployed to a private GCP running artifactory. To access it, you can run the following command (make sure you have Conan installed!)

conan remote add artifactory http://35.188.34.82:8081/artifactory/api/conan/conan-libmt
conan download mt -r=artifactory

And you can include it into your cpp project using Conan!