mirror of
https://github.com/FairRootGroup/FairMQ.git
synced 2025-10-13 00:31:14 +00:00
docs: Update README
This commit is contained in:
parent
1c5ec76085
commit
6131a375f9
32
README.md
32
README.md
|
@ -1,12 +1,9 @@
|
||||||
<!-- {#mainpage} -->
|
<!-- {#mainpage} -->
|
||||||
# FairMQ [](COPYRIGHT) [](https://alfa-ci.gsi.de/blue/organizations/jenkins/FairRootGroup%2FFairMQ/branches) [](https://scan.coverity.com/projects/fairrootgroup-fairmq)
|
# FairMQ [](COPYRIGHT)
|
||||||
|
|
||||||
C++ Message Queuing Library and Framework
|
C++ Message Queuing Library and Framework
|
||||||
|
|
||||||
| Release | Version | Docs |
|
Docs: [Book](https://github.com/FairRootGroup/FairMQ/blob/dev/README.md#documentation)
|
||||||
| :---: | :--- | :--- |
|
|
||||||
| `stable` | [](https://github.com/FairRootGroup/FairMQ/releases/latest) | [API](https://fairrootgroup.github.io/FairMQ/latest), [Book](https://github.com/FairRootGroup/FairMQ/blob/master/README.md#documentation) |
|
|
||||||
| `testing` | [](https://github.com/FairRootGroup/FairMQ/tags) | [Book](https://github.com/FairRootGroup/FairMQ/blob/dev/README.md#documentation) |
|
|
||||||
|
|
||||||
Find all FairMQ releases [here](https://github.com/FairRootGroup/FairMQ/releases).
|
Find all FairMQ releases [here](https://github.com/FairRootGroup/FairMQ/releases).
|
||||||
|
|
||||||
|
@ -24,11 +21,13 @@ FairMQ provides multiple implementations for its API (so-called "transports",
|
||||||
e.g. `zeromq`, `shmem` and `ofi` (in development)) to cover a variety of use cases
|
e.g. `zeromq`, `shmem` and `ofi` (in development)) to cover a variety of use cases
|
||||||
(e.g. inter-thread, inter-process, inter-node communication) and machines (e.g. Ethernet, Infiniband).
|
(e.g. inter-thread, inter-process, inter-node communication) and machines (e.g. Ethernet, Infiniband).
|
||||||
In addition to this core functionality FairMQ provides a framework for creating "devices" - actors which
|
In addition to this core functionality FairMQ provides a framework for creating "devices" - actors which
|
||||||
are communicating through message passing. FairMQ does not only allow the user to use different transport but also to mix them; i.e: A Device can communicate using different transport on different channels at the same time. Device execution is modelled as a simple state machine that
|
are communicating through message passing. FairMQ does not only allow the user to use different transport
|
||||||
shapes the integration points for the user task. Devices also incorporate a plugin system for runtime configuration and control.
|
but also to mix them; i.e: A Device can communicate using different transport on different channels at the
|
||||||
Next to the provided devices and plugins (e.g. [DDS](https://github.com/FairRootGroup/DDS))
|
same time. Device execution is modelled as a simple state machine that shapes the integration points for
|
||||||
the user can extend FairMQ by developing his own plugins to integrate his devices with external
|
the user task. Devices also incorporate a plugin system for runtime configuration and control.
|
||||||
configuration and control services.
|
Next to the provided [devices](https://github.com/FairRootGroup/FairMQ/tree/master/fairmq/devices) and
|
||||||
|
[plugins](https://github.com/FairRootGroup/FairMQ/tree/master/fairmq/plugins) the user can extend FairMQ
|
||||||
|
by developing his own plugins to integrate his devices with external configuration and control services.
|
||||||
|
|
||||||
FairMQ has been developed in the context of its mother project [FairRoot](https://github.com/FairRootGroup/FairRoot) -
|
FairMQ has been developed in the context of its mother project [FairRoot](https://github.com/FairRootGroup/FairRoot) -
|
||||||
a simulation, reconstruction and analysis framework.
|
a simulation, reconstruction and analysis framework.
|
||||||
|
@ -47,14 +46,15 @@ cmake --build fairmq_build --target install
|
||||||
|
|
||||||
Please consult the [manpages of your CMake version](https://cmake.org/cmake/help/latest/manual/cmake.1.html) for more options.
|
Please consult the [manpages of your CMake version](https://cmake.org/cmake/help/latest/manual/cmake.1.html) for more options.
|
||||||
|
|
||||||
If dependencies are not installed in standard system directories, you can hint the installation location via `-DCMAKE_PREFIX_PATH=...` or per dependency via `-D{DEPENDENCY}_ROOT=...`. `{DEPENDENCY}` can be `GTEST`, `BOOST`, `FAIRLOGGER`, `ZEROMQ`, `OFI`, `PMIX`, `ASIO`, `ASIOFI` or `DDS` (`*_ROOT` variables can also be environment variables).
|
If dependencies are not installed in standard system directories, you can hint the installation location via
|
||||||
|
`-DCMAKE_PREFIX_PATH=...` or per dependency via `-D{DEPENDENCY}_ROOT=...` (`*_ROOT` variables can also be environment variables).
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
FairMQ ships as a CMake package, so in your `CMakeLists.txt` you can discover it like this:
|
FairMQ ships as a CMake package, so in your `CMakeLists.txt` you can discover it like this:
|
||||||
|
|
||||||
```cmake
|
```cmake
|
||||||
find_package(FairCMakeModules 0.2 REQUIRED)
|
find_package(FairCMakeModules 1.0 REQUIRED)
|
||||||
include(FairFindPackage2)
|
include(FairFindPackage2)
|
||||||
find_package2(FairMQ)
|
find_package2(FairMQ)
|
||||||
find_package2_implicit_dependencies()
|
find_package2_implicit_dependencies()
|
||||||
|
@ -71,14 +71,14 @@ list(PREPEND CMAKE_PREFIX_PATH /path/to/fairmq_install)
|
||||||
Optionally, you can require certain FairMQ package components and a minimum version:
|
Optionally, you can require certain FairMQ package components and a minimum version:
|
||||||
|
|
||||||
```cmake
|
```cmake
|
||||||
find_package(FairMQ 1.4.0 COMPONENTS dds_plugin)
|
find_package(FairMQ 1.4.50 COMPONENTS ofi_transport)
|
||||||
```
|
```
|
||||||
|
|
||||||
When building FairMQ, CMake will print a summary table of all available package components.
|
When building FairMQ, CMake will print a summary table of all available package components.
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
|
||||||
* [asio](https://github.com/chriskohlhoff/asio) (optionally bundled)
|
* [asio](https://github.com/chriskohlhoff/asio)
|
||||||
* [asiofi](https://github.com/FairRootGroup/asiofi)
|
* [asiofi](https://github.com/FairRootGroup/asiofi)
|
||||||
* [Boost](https://www.boost.org/)
|
* [Boost](https://www.boost.org/)
|
||||||
* [CMake](https://cmake.org/)
|
* [CMake](https://cmake.org/)
|
||||||
|
@ -86,13 +86,14 @@ When building FairMQ, CMake will print a summary table of all available package
|
||||||
* [Doxygen](http://www.doxygen.org/)
|
* [Doxygen](http://www.doxygen.org/)
|
||||||
* [FairCMakeModules](https://github.com/FairRootGroup/FairCMakeModules) (optionally bundled)
|
* [FairCMakeModules](https://github.com/FairRootGroup/FairCMakeModules) (optionally bundled)
|
||||||
* [FairLogger](https://github.com/FairRootGroup/FairLogger)
|
* [FairLogger](https://github.com/FairRootGroup/FairLogger)
|
||||||
|
* [Flatbuffers](https://google.github.io/flatbuffers/)
|
||||||
* [GTest](https://github.com/google/googletest) (optionally bundled)
|
* [GTest](https://github.com/google/googletest) (optionally bundled)
|
||||||
* [PMIx](https://pmix.org/)
|
* [PMIx](https://pmix.org/)
|
||||||
* [ZeroMQ](http://zeromq.org/)
|
* [ZeroMQ](http://zeromq.org/)
|
||||||
|
|
||||||
Which dependencies are required depends on which components are built.
|
Which dependencies are required depends on which components are built.
|
||||||
|
|
||||||
Supported platforms: Linux and MacOS.
|
Supported platform is Linux. macOS is supported on a best-effort basis.
|
||||||
|
|
||||||
## CMake options
|
## CMake options
|
||||||
|
|
||||||
|
@ -102,7 +103,6 @@ On command line:
|
||||||
* `-DBUILD_TESTING=OFF` disables building of tests.
|
* `-DBUILD_TESTING=OFF` disables building of tests.
|
||||||
* `-DBUILD_EXAMPLES=OFF` disables building of examples.
|
* `-DBUILD_EXAMPLES=OFF` disables building of examples.
|
||||||
* `-DBUILD_OFI_TRANSPORT=ON` enables building of the experimental OFI transport.
|
* `-DBUILD_OFI_TRANSPORT=ON` enables building of the experimental OFI transport.
|
||||||
* `-DBUILD_DDS_PLUGIN=ON` enables building of the DDS plugin.
|
|
||||||
* `-DBUILD_PMIX_PLUGIN=ON` enables building of the PMIx plugin.
|
* `-DBUILD_PMIX_PLUGIN=ON` enables building of the PMIx plugin.
|
||||||
* `-DBUILD_DOCS=ON` enables building of API docs.
|
* `-DBUILD_DOCS=ON` enables building of API docs.
|
||||||
* You can hint non-system installations for dependent packages, see the #installation-from-source section above
|
* You can hint non-system installations for dependent packages, see the #installation-from-source section above
|
||||||
|
|
Loading…
Reference in New Issue
Block a user