conan-io / wishlist

This repo is to propose libraries, frameworks, and code in general that users would like to have in conan
MIT License
49 stars 5 forks source link

Aeron - Efficient reliable UDP unicast, UDP multicast, and IPC message transport. #128

Closed helmesjo closed 6 years ago

helmesjo commented 6 years ago

https://github.com/real-logic/aeron

I'm currently looking into high-performance real-time data streaming, and Aeron (with it's C++ client) popped up. I have no experience with it, but it appears to be highly recommended (3000+ stars)!

For a quick overview, look here.

It's supported on Mac, Linux & Windows.

Building

Building & testing appears to be straight forward:

mkdir -p cppbuild/Debug
cd cppbuild/Debug
cmake ../..
# cmake -DBUILD_AERON_DRIVER=ON ../.. # optional
cmake --build . --clean-first
ctest

Dependencies

C++ API Client:

Requirements to build HdrHistogram_c. HdrHistogram requires zlib.h currently. So on Ubuntu: $ sudo apt-get install libz-dev

C Media Driver (if option BUILD_AERON_DRIVER=ON):

Linux Dependencies: C Library (for the system built on) -lpthread - pthread Library -ldl - DL Library -lbsd - BSD Library (optional - will use /dev/urandom directly instead of arc4random if not available) -luuid - UUID Library (optional - will use pure random Receiver ID if not available) -lm - Math Library

danimtb commented 6 years ago

Does it have any dependencies?

helmesjo commented 6 years ago

I updated the issue, but in short:

C++ API client has an indirect dependency on zlib through HdrHistogram. HdrHistogram is automatically added as an ExternalProject.

C Media Driver (the "data shuffler", that may or may not run in same process), which is optional (default is implemented in java), has dependencies listed above. It is enabled with BUILD_AERON_DRIVER=ON. It's currently only supported on linux & mac.

danimtb commented 6 years ago

great, thanks!

helmesjo commented 6 years ago

Got a working recipe here, including the C Driver as an option.

Builds for Linux, MacOS & Windows.

Build Status Build status