Reticula is a general-purpose complex network analysis tool, supporting static networks as well as hypergraphs, temporal networks. It allows you to study radomise networks, calculate static or temporal network reachability and form event graphs.
Reticula (singular: reticulum) is a word with Latin origin meaning networks or network-like (i.e., reticulate) structures.
The documentation is available at reticula.network
Reticular relies heavily on certain C++20 features, such as concepts and ranges. If you intend on using Reticula in your project, you need a compiler with decent support of both. This library is regularly tested on Linux (GCC 11.4.0), MacOS (XCode 14.3, AppleClang 14.0.3.14030022) and Windows (Visual Studio 17 2022, MSVC 19.37.32825.0), though anything more recent should probably work just as well.
You can use FetchContent to include Reticula in your C++ project. For example:
include(FetchContent)
FetchContent_Declare(
reticula
GIT_REPOSITORY https://github.com/reticula-network/reticula.git
GIT_TAG ${COMMIT_HASH})
FetchContent_MakeAvailable(reticula)
If you want to fetch other content using CMake FetchContent module, you can
include those in FetchContent_MakeAvailable
call or call this function
separatly for each content.
Finally, link your target and Reticula like this:
target_link_libraries(${TARGET_NAME} PRIVATE reticula)
Clone the library:
$ git clone https://github.com/reticula-network/reticula.git
Compile and run the tests:
$ cd reticula
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build . --target reticula_tests
$ ./reticula_tests