-
Notifications
You must be signed in to change notification settings - Fork 9
Third Party Libraries (TPLs)
The DARMA/vt project embeds several external, third-party libraries (TPLs) which can be found in vt/lib and vt/tests/extern in the source code. The TPLs are embedded/snapshotted to make it very easy for users to compile/link without requiring users to fetch external libraries with a specific version.
Part of the DARMA/vt regular maintenance includes updating the TPLs when new versions are released after testing them on the target platforms. We do not very aggressively update TPLs unless there are bug fixes/security updates or new features needed for new development to keep the code as stable as possible.
If you want to add new TPL, ensure that the library has a permissive license (non-GPL/LGPL) and we follow all license requirements. Make clear note (and receive approval) for any such changes in the PR. We are very careful not to depend on libraries that are not included in vt/lib
. Due to the application use cases, our code must ship with all required libraries without having to fetch third-party dependencies (beyond standard libraries and MPI).
After such a change is approved and merged, add the TPL to the following list in either the required or optional category. Make note of the license and put a link to it in the table so it is clear.
Library Name | Link | License Type | Embedded Source in DARMA/vt | Description |
---|---|---|---|---|
CLI11 | CLI11 (GitHub) | BSD | vt/lib/CLI | Provides command-line argument parsing |
fmt | fmt (GitHub) | MIT | vt/lib/fmt | Formatting strings for debug/informational prints |
json | json (GitHub) | MIT | vt/lib/json | Encoder/decoder for json |
EngFormat-Cpp | EngFormat-Cpp (GitHub) | MIT | vt/lib/EngFormat-Cpp | Engineering notation formatter |
yaml-cpp | YAML-cpp (GitHub) | MIT | vt/lib/yaml-cpp | YAML cpp parser/outputter |
Library Name | Link | License Type | Embedded Source in DARMA/vt | Description |
---|---|---|---|---|
mimalloc | mimalloc (GitHub) | MIT | vt/lib/mimalloc | Can be optionally enabled to override the default memory allocator for debugging memory usage |
fcontext (boost) | fcontext (GitHub) | Boost | vt/lib/context/src/context | Provides portable user-level threading over a wide variety of platforms |
googletest | googletest (GitHub) | BSD | vt/tests/extern/googletest | Provides test framework for unit and integration tests |
libfort | libfort (GitHub) | MIT | vt/lib/libfort | C/C++ library to create formatted ASCII tables for console applications |