Contributors
May 3, 2026 ยท View on GitHub
This file describes the contributors to the HELICS library and the software used as part of this project If you would like to contribute to the HELICS project see CONTRIBUTING
Individual contributors
Used Libraries or Code
BOOST
Boost is used throughout in the code. Some of the header-only Boost algorithms and other libraries are also used throughout the code. Some of the string parsing can optionally use boost spirit. The webserver uses Boost::Beast from Boost 1.70 or higher. Boost is licensed under the Boost Software License.
cppzmq
The header only bindings for the ZeroMQ library are used to interact with the ZeroMQ library. The header files are modified to include some string operations and are included in the GridDyn source. cppzmq is licensed under the MIT license.
JSON for Modern C++
GridDyn uses the header-only nlohmann/json library for parsing and generating JSON. The bundled headers are licensed under the MIT license.
CLI11
CLI11 is a command line parser and was used as a replacement for boost::program_options. The modifications used in Griddyn were merged to the CLI11 library and are now fully integrated in the upstream repository as of the 1.9 release of CLI11. The project was created by Henry Schreiner. Release 1.9 the CLI11 single file header is included with a HELICS install. CLI11 is available under a 3-Clause BSD license.
toml11
toml11 is a C++11 header-only TOML parser/encoder depending only on the C++ standard library. Compatible with the latest version of TOML v0.5.0. toml11 is licensed under the MIT license. HELICS includes it through a submodule of a library fork until the changes can be merged upstream.
HELICS
GridDyn supports HELICS in experimental versions, and several components of GridDyn code were used in the development of HELICS, given they have several of the same authors.
libGuarded
Several components of libGuarded are being used in the core and application libraries to better encapsulate the locks for threading. The library was modified to allow use of std::mutex and std::timed_mutex support for the shared_guarded class, and also modified to use handles. It is now included through the gmlc/concurrency. libGuarded is licensed under BSD 2 clause.
fmt
fmt replaces boost::format for internal logging and message printing. The library is included as a submodule. fmt is licensed under BSD 2 clause license.
gmlc/containers
Several containers developed for HELICS and other applications were branched into a separate repository as a header only library. It is included in HELICS as a submodule and is released under a BSD-3 clause license.
gmlc/concurrency
Several concurrency related structures and containers were developed for HELICS and other applications and were branched into a separate repository as a header only library and also includes the modified libGuarded. It is included in HELICS as a submodule and is released under a BSD-3 clause license.
gmlc/utilities
Several generic operations and utilities from HELICS and GridDyn are encapsulated in a separate repository, mostly dealing with String Operations but including a few other features as well. It is included in HELICS as a submodule and is released under a BSD-3 clause license.
LLNL/units
A library that provides runtime unit values, instead of individual unit types, for the purposes of working with units of measurement at run time possibly from user input. It is included in HELICS as a submodule and is released under a BSD-3 clause license.
cereal
The cereal library is used for serialization of messages sent around inside HELICS. A modified version of cereal is included in the HELICS source and licensed under the BSD-3 clause license. The modifications include modifying the headers to use relative paths instead of absolute so it can be included in different locations.
c++17 headers
HELICS makes use of C++17 headers, but due to C++14 compatibility requirements these are not available on all supported compilers. So included library headers are used from @tcbrindle including std::any, and std::string_view; std::optional is used via containers. These fall under the boost license, this library is an aggregate from a number of different sources, see the README for more details. The Boost versions of these libraries are not used due to incompatibilities through different boost versions that HELICS supports, so a single stable source was used. When the minimum boost version and compiler is updated this code will likely be removed.
CMake scripts
Several CMake scripts came from other sources and were either used or modified for use in HELICS.
- Lars Bilke CodeCoverage.cmake
- NATIONAL HEART, LUNG, AND BLOOD INSTITUTE FindOctave.cmake
- clang-format, clang-tidy scripts were created using tips from Emmanuel Fleury
- Viktor Kirilov, useful CMake macros ucm particularly for the set_runtime macro to use static runtime libraries
- scripts for cloning get repositories are included from tschuchortdev/cmake_git_clone used with MIT License
- Some scripts for including google test were borrowed and modified from CLI11