eclipse-ecal / ecal-core

📦 eCAL C/C++ runtime core
Apache License 2.0
10 stars 3 forks source link
client-server cpp google-protobuf ipc middleware publish-subscribe shared-memory

The eCAL core only project

License

The enhanced Communication Abstraction Layer (eCAL) is a middleware that enables scalable, high performance interprocess communication on a single computer node or between different nodes in a computer network.

The goal of the ecal core only project is to create a modular core with clearly defined dependencies based on the configured features. This will enormously reduce the integration effort into other projects and the porting effort to specific hardware.

Visit the eCAL Documentation at 🌐 https://ecal.io for more information.

Differences to Eclipse-eCAL

How to build

Clone the repository and its submodules

git clone https://github.com/eclipse-ecal/ecal-core.git
cd ecal-core
git submodule init
git submodule update

Build it

mkdir _build
cd _build
cmake .. -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES=submodule_dependencies.cmake
cmake --build .

CMake Options

This section provides documentation for the CMake options used in configuring the eCAL library. These options allow you to customize the build and enable or disable specific features. Please adapt the options according to your project requirements.

Available dependencies

ECAL_CORE_HAS_PROTOBUF

Additional Builds

ECAL_CORE_BUILD_SAMPLES
ECAL_CORE_BUILD_TESTS

Core Internal Feature Configuration

ECAL_CORE_CONFIGURATION
ECAL_CORE_COMMAND_LINE
ECAL_CORE_REGISTRATION
ECAL_CORE_MONITORING
ECAL_CORE_PUBLISHER
ECAL_CORE_SUBSCRIBER
ECAL_CORE_SERVICE
ECAL_CORE_TIMEPLUGIN
ECAL_CORE_NPCAP_SUPPORT
ECAL_CORE_REGISTRATION_SHM
ECAL_CORE_TRANSPORT_UDP
ECAL_CORE_TRANSPORT_TCP
ECAL_CORE_TRANSPORT_SHM

Note: Please adjust these options based on your project's needs, ensuring that the selected features align with your desired functionality and dependencies.