Project
License and citation
FairMQ is free software. You can use it, change it and distribute it under the terms of the GNU Lesser General Public License, version 3 only. This page tells you where the license terms are, who holds the copyright, and how to cite FairMQ in a publication.
The license
Section titled “The license”| Item | Value |
|---|---|
| License | GNU Lesser General Public License, version 3 only (SPDX identifier LGPL-3.0-only) |
| License text | LICENSE in the repository, also at gnu.org |
| Base license | The LGPL version 3 adds permissions to the GNU General Public License, version 3 (GPL). Read the two documents together. |
| Copyright and license of each file | COPYRIGHT, in the Debian machine-readable copyright format |
Each source file of FairMQ starts with this header. The years and the copyright holders change from file to file.
/******************************************************************************** * Copyright (C) 2021-2023 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH * * * * This software is distributed under the terms of the * * GNU Lesser General Public Licence (LGPL) version 3, * * copied verbatim in the file "LICENSE" * ********************************************************************************/The source files have no SPDX-License-Identifier lines. The header names version 3 and no later version, and COPYRIGHT gives LGPL-3.0-only. Section 6 of the LGPL lets you use a later version only if the library says "or any later version". FairMQ does not say this.
What the license means in practice
Section titled “What the license means in practice”The license uses these terms. FairMQ is the "Library". Your device or program that uses the interfaces of FairMQ is an "Application". An Application that is linked with FairMQ is a "Combined Work".
- Use without distribution: section 2 of the GPL lets you make, run and propagate copies without conditions, if you do not convey them.
- Changed copies of FairMQ: section 2 of the LGPL and section 5 of the GPL apply when you convey a changed copy of FairMQ.
- Code from the headers: the headers of FairMQ contain templates and inline functions, and
runDevice.hdefinesmain(). Section 3 of the LGPL tells what you must do when your object code contains material from these headers. - Programs that link FairMQ: section 4 of the LGPL tells the conditions for a Combined Work. Examples are a notice that the program uses FairMQ, and copies of the GPL and the LGPL. Also, the user must be able to use the program with a changed FairMQ. Section 4 d) 1) names a suitable shared library mechanism as one way. The default build of FairMQ makes the shared library
libfairmq.so.
Copyright
Section titled “Copyright”COPYRIGHT gives these copyright holders for all files of FairMQ:
- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH
- the authors in
AUTHORS - the contributors in
CONTRIBUTORS
The Git history shows the copyright of each contributor. The files MemoryResources.h, MemoryResources.cxx and MemoryResourceTools.h have a second copyright holder: CERN and the copyright holders of ALICE O2.
The upstream contact in COPYRIGHT is Mohammad Al-Turany. The maintainer in codemeta.json is the GSI Helmholtz Centre for Heavy Ion Research.
Bundled code
Section titled “Bundled code”The repository contains other projects as Git submodules in extern/. They have their own licenses.
| Submodule | Copyright | License | Use in FairMQ |
|---|---|---|---|
| GoogleTest | Google Inc. | BSD-style, 3 clauses (text in COPYRIGHT) |
The tests. It is not in the installed library. |
| PicoSHA2 | okdshin | MIT (text in COPYRIGHT) |
The shmem transport makes the shared memory ID of a session with its SHA-256 function. This ID is in the names of the shared memory objects. PicoSHA2 is compiled into libfairmq. |
| FairCMakeModules | GSI | GNU LGPL version 3 (LICENSE of the submodule) |
CMake modules for the build, if CMake does not find an installed FairCMakeModules. |
The dependencies outside of the repository, for example Boost, FairLogger and ZeroMQ, have their own licenses. See Install for the list.
Cite FairMQ
Section titled “Cite FairMQ”FairMQ has a DOI on Zenodo: 10.5281/zenodo.1689985. The README and codemeta.json give this DOI.
When you cite FairMQ, give the version that you used. The text below cites v1.11.0. Change the version and the year for a different release. The release notes give the date of each release.
Al-Turany, M., Klein, D., Kollegger, T., Rybalchenko, A., & Winckler, N. (2026).FairMQ: C++ Message Queuing Library and Framework (Version 1.11.0) [Computer software].Zenodo. https://doi.org/10.5281/zenodo.1689985@software{fairmq, author = {Al-Turany, Mohammad and Klein, Dennis and Kollegger, Thorsten and Rybalchenko, Alexey and Winckler, Nicolas}, title = {{FairMQ}: {C++} Message Queuing Library and Framework}, version = {1.11.0}, year = {2026}, publisher = {Zenodo}, doi = {10.5281/zenodo.1689985}, url = {https://doi.org/10.5281/zenodo.1689985}}The entry type @software needs biblatex. For BibTeX styles without it, use @misc.
The names, the title and the description come from the metadata files of the repository:
codemeta.json: the name, the descriptionC++ Message Queuing Library and Framework, the DOI, the authors, the contributors and the maintainer..zenodo.json: the creators and the contributors of the Zenodo record.
Authors and contributors
Section titled “Authors and contributors”The authors of FairMQ are in AUTHORS:
| Author | ORCID |
|---|---|
| Mohammad Al-Turany | 0000-0002-8071-4497 |
| Dennis Klein | 0000-0003-3787-1910 |
| Thorsten Kollegger | — |
| Alexey Rybalchenko | 0000-0002-6249-155X |
| Nicolas Winckler | — |
CONTRIBUTORS lists the other people who contributed code. The script meta_update.py copies the two lists into codemeta.json and .zenodo.json. Thus the citation metadata agrees with the files. To add your name, see Authors and contributors.
Related pages
Section titled “Related pages”- Contributing: add your name and send a change.
- Release notes: the versions and their dates.
- Install: the dependencies and their versions.