Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

libcluon is a small and efficient, single-file and header-only library written in modern C++ to power microservices.

License

NotificationsYou must be signed in to change notification settings

chrberger/libcluon

Repository files navigation

Linux & OSX Build (TravisCI)Win64 Build (AppVeyor)Test CoverageCoverity AnalysisCII Best Practices
Build StatusBuild statuscodecovCoverity ScanCII Best Practices

LicenseAPI documentationWin (x86_64)Ubuntu (x86_64)Ubuntu (armhf)Ubuntu (aarch64)Ubuntu (s390x)Ubuntu (powerpc)Alpine (x86_64)Alpine (armhf)Alpine (aarch64)

libcluon is a small single-file, header-only library written in modern C++ library toglue microservices - in aclever way - simply: cluon. Its name is inspired by gluon, anelementary particle acting as exchange particle.

libcluon is distributed as single-file,header-only library - just dropcluon-complete.hpp into your project,#include "cluon-complete.hpp", and compile your project with a modern C++ compiler (C++14 or newer)

Say you want to quickly realize a distributed software system where individual software components exchange messages and you want to keep your project assimple andclean as possible - that's a typical use-case for libcluon.Getting Started Tutorial using an online C++ compiler.

Table of Contents

Features

  • Written in highly portable and high quality C++14
  • Available asheader-only, single-file distribution - just dropcluon-complete.hpp into your project,#include "cluon-complete.hpp", and compile your project with a modern C++ compiler (C++14 or newer)
  • Message compiler produces fully self-contained messages that do only depend on C++14 - external libraries are not needed allowing easy embedding into existing projects
  • Native implementation ofProtobuf for data serialization & deserialization:Example
  • Native implementation ofLCM/ZCM for data serialization & deserialization:Example
  • Native implementation ofJSON for data serialization & deserialization:Example
  • Native implementation ofMsgPack for data serialization & deserialization:Example
  • libcluon natively available for JavaScript viaEmscripten:libcluon.js
  • Portable implementation of publish/subscribe communication (Linux, MacOSX, Windows):Example
  • Intermediate Data Representation (IDR) enables flexible message transformations at runtime; for example: ConvertProtobuf to JSON or convertOD4 to JSON or convertLCM to JSON at runtime without generating any data structures beforehand
  • Message self-reflection to extract portable message specifications at runtime:Examples
  • Message transformatiom into platform-independent CSV format:Examples

Dependencies

No dependencies! All you need is a C++14-compliant compiler as the project ships the following dependencies as part of the source distribution:

As part of our CI strategy thanks to TravisCI and AppVeyor, we are continuously building with:

  • Darwin 16.7.0 (x86_64)/AppleClang 9.0.0.9000038

  • FreeBSD 11.1 (x86_64)/GCC 6.4.0

  • NetBSD 8.0 (x86_64)/GCC 5.5.0

  • OpenBSD 6.3 (x86_64)/clang 5.0.1

  • Windows (x86_64)/MSVC 19.13.26129.0

  • Ubuntu 18.04 LTS (x86_64)/GCC 7.4.0

  • Ubuntu 18.04 LTS (x86_64)/clang 7.0.0

  • Ubuntu 16.04 LTS (x86_64)/GCC 5.4.0

  • Ubuntu 16.04 LTS (x86_64)/clang 7.0.0

  • Ubuntu 14.04 LTS (armhf)/clang 3.8.1

  • Ubuntu 14.04 LTS (x86_64)/GCC 8.0.1

  • Ubuntu 14.04 LTS (x86_64)/GCC 7.3.0

  • Ubuntu 14.04 LTS (x86_64)/GCC 6.4.0

  • Ubuntu 14.04 LTS (x86_64)/GCC 5.5.0

  • Ubuntu 14.04 LTS (x86_64)/clang 6.0.1

  • Ubuntu 14.04 LTS (x86_64)/clang 5.0.2

  • Ubuntu 14.04 LTS (x86_64)/clang 5.0.0

  • Ubuntu 14.04 LTS (x86_64)/clang 4.0.1

  • Ubuntu 14.04 LTS (x86_64)/clang 3.9.1

  • Ubuntu 14.04 LTS (x86_64)/clang 3.8.0

Installation

Installation as single-file, header-only library

libcluon is provided asheader-only, single-file library as well - just dropcluon-complete.hpp into your project,#include "cluon-complete.hpp" where you want to use libcluon, and compile your project with a modern C++ compiler (C++14 or newer).

Installation on Ubuntu 20.04 LTS

We are providing pre-compiled binaries for Ubuntu 20.04 LTS (Focal Fossa) via Ubuntu's Launchpad foramd64,i386,armfh, andarm64; simply add the following PPA to your sources list:

sudo add-apt-repository ppa:chrberger/libcluon

Afterwards, update your package database and installlibcluon:

sudo apt-get updatesudo apt-get install libcluon

Installation on Ubuntu 18.04 LTS

We are providing pre-compiled binaries for Ubuntu 18.04 LTS (Bionic Beaver) via Ubuntu's Launchpad foramd64,i386,armfh, andarm64; simply add the following PPA to your sources list:

sudo add-apt-repository ppa:chrberger/libcluon

Afterwards, update your package database and installlibcluon:

sudo apt-get updatesudo apt-get install libcluon

Installation on Debian

To uselibcluon on Debian, you need to add the repository key first:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8EA63C9470BA0E595B75BBA2A92E492AC0B8C7EC

Afterwards, installadd-apt-repository and its dependencies:

sudo apt install dirmngr software-properties-common

Then, you can add thelibcluon repository:

sudo add-apt-repository ppa:chrberger/libcluon

Now, you can finally installlibcluon:

sudo apt update && sudo apt install libcluon

Installation on Alpine 3.13

We are providing pre-compiled binaries for Alpine 3.13 forx86_64,armfh, andaarch64; simply install the pre-compile.apk package as follows:

apk add libcluon --no-cache --repository https://chrberger.github.io/libcluon/alpine/v3.13 --allow-untrusted

Installation on Windows

We are providing pre-compiled binaries including debug symbols for Windows 64 via BinTray here:https://bintray.com/chrberger/libcluon/libcluon-win64-debug#files/

Build from sources on the example of Ubuntu 16.04 LTS

To compilelibcluon from sources on an Ubuntu 16.04 LTS (Xenial Xerus) system, you need to havebuild-essential,cmake, andgit installed:

sudo apt-get install build-essential git cmake

Afterwards, simply clone our Git repository:

git clone https://github.com/chrberger/libcluon.git

As an alternative, you can download our latest source release from here:https://github.com/chrberger/libcluon/releases/latest

Change to your working copy and create a build folder:

cd libcluonmkdir buildcd build

Next, runcmake to create the necessary build files:

cmake ../libcluon

Finally, compile and install the software:

makemake testmake install

Tutorials & API Documentation

Contributing

We are happy to receive your PRs to accelerate libcluon's development; before contributing, please take a look at theContribution Documents.

License


[8]ページ先頭

©2009-2025 Movatter.jp