Coder Social home page Coder Social logo

eclipse-ecal / ecal-core Goto Github PK

View Code? Open in Web Editor NEW
8.0 4.0 3.0 1.91 MB

๐Ÿ“ฆ eCAL C/C++ runtime core

License: Apache License 2.0

CMake 7.25% Batchfile 0.27% C 10.13% C++ 82.07% Shell 0.28%
cpp client-server google-protobuf ipc middleware publish-subscribe shared-memory

ecal-core's Introduction

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

  • C/C++ language support only

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
  • This option determines whether the Google protobuf library is available or not. If enabled, it includes the compilation of protobuf based samples and unit tests for eCAL.

Additional Builds

ECAL_CORE_BUILD_SAMPLES
  • This option controls whether the eCAL samples should be built. If not needed, you can disable this option to reduce build time.
ECAL_CORE_BUILD_TESTS
  • This option determines whether the eCAL Google Tests should be built. If enabled, it includes the compilation of unit tests for eCAL. Disabling this option will skip the build of tests if they are not required in your development environment.
  • Requires gtest library.

Core Internal Feature Configuration

ECAL_CORE_CONFIG_INIFILE
  • Enabling this option allows eCAL to be configured via an ecal.ini file. This file is used to set various configuration parameters for eCAL, providing flexibility in adjusting its behavior without modifying the source code.
  • Requires simpleini library.
ECAL_CORE_COMMAND_LINE
  • Enabling this option includes support for eCAL application command-line interfaces (cmd line). This allows you to interact with eCAL applications through the command line, providing additional runtime configuration options.
  • Requires tclap library.
ECAL_CORE_REGISTRATION
  • Enabling this option activates the eCAL registration layer. This layer is responsible for managing and registering different components within the eCAL ecosystem, facilitating communication between them.
ECAL_CORE_MONITORING
  • Enabling this option activates the eCAL monitoring functionality.
ECAL_CORE_PUBLISHER
  • Enabling this option includes the eCAL publisher functionality. This is essential for components that need to publish data to the eCAL communication infrastructure.
ECAL_CORE_SUBSCRIBER
  • Enabling this option includes the eCAL subscriber functionality. This is crucial for components that need to subscribe to and receive data from the eCAL communication infrastructure.
ECAL_CORE_SERVICE
  • Enabling this option includes the eCAL server/client functionality.
ECAL_CORE_TIMEPLUGIN
  • Enabling this option includes the eCAL time plugin functionality. This allows for precise synchronization of time across different components using eCAL.
ECAL_CORE_NPCAP_SUPPORT
  • Enabling this option replaces the standard ASIO UDP receiver by a NPCAP based UDP receiver to increase the performance on Windows platforms.
  • Requires udpcap library.
ECAL_CORE_REGISTRATION_SHM
  • Enabling this option activates the eCAL registration layer based on shared memory for high performance local communication scenarios only.
ECAL_CORE_TRANSPORT_UDP
  • Enabling this option includes the eCAL UDP Multicast message transport layer.
  • Requires ecaludp library.
ECAL_CORE_TRANSPORT_TCP
  • Enabling this option includes the eCAL TCP message transport layer.
  • Requires tcp_pubsub library.
ECAL_CORE_TRANSPORT_SHM
  • Enabling this option includes the eCAL local shared memory message transport layer.

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.