GithubHelp home page GithubHelp logo

liuyf5231 / yail Goto Github PK

View Code? Open in Web Editor NEW

This project forked from agrewal707/yail

0.0 1.0 0.0 336 KB

An IPC library that implements publish/subscribe (PUBSUB) and remote procedure call (RPC) functionality.

License: MIT License

CMake 10.28% C++ 88.71% C 0.13% Makefile 0.88%

yail's Introduction

YAIL: Yet Another IPC Library

YAIL is a C++ library that provides publish/subscribe (PUBSUB) and remote procedure call (RPC) functionality with a strongly typed templated API.

The PUBSUB functionality is based on concepts from Data Distribution Service (DDS) standard from Object Management Group (OMG). YAIL separates the IPC messaging layer from the underlying transport enabling user to instantiate YAIL pubsub or rpc service with specific transport at compile time.

PUBSUB

YAIL library currently provides following transports for PUBSUB service:

  • UDP multicast
  • Shared Memory

Atl text

RPC

YAIL library currently provides following transports for RPC service:

  • UNIX Domain

Atl text

Dependencies

YAIL depends on following libraries:

  • Standard C++
  • Boost ASIO
  • Google protobuf
  • Boost Interprocess (only if shared memory transport is enabled)
  • POSIX threads (only if shared memory transport is enabled)

Build and Installation

$ cd ~/projects
$ git clone git://github.com/agrewal707/yail.git
$ mkdir -p build/yail
$ cd build/yail
$ cmake -DYAIL_PUBSUB_ENABLE_UDP_TRANSPORT=on -DCMAKE_INSTALL_PREFIX=local -DCMAKE_BUILD_TYPE=MinSizeRel ../../yail
$ make install/strip

Tests

$ sudo LD_LIBRARY_PATH=local/lib make test
Running tests...
Test project /home/agrewal/projects/build/yail
      Start  1: pubsub_udp_async_singlethreaded
 1/12 Test  #1: pubsub_udp_async_singlethreaded ................   Passed    5.05 sec
      Start  2: pubsub_udp_sync_multithreaded
 2/12 Test  #2: pubsub_udp_sync_multithreaded ..................   Passed    8.03 sec
      Start  3: pubsub_shmem_async_singlethreaded
 3/12 Test  #3: pubsub_shmem_async_singlethreaded ..............   Passed    5.37 sec
      Start  4: pubsub_shmem_sync_multithreaded
 4/12 Test  #4: pubsub_shmem_sync_multithreaded ................   Passed    8.44 sec
      Start  5: rpc_unix_domain_sync_call_reply_ok
 5/12 Test  #5: rpc_unix_domain_sync_call_reply_ok .............   Passed    1.05 sec
      Start  6: rpc_unix_domain_async_call_reply_ok
 6/12 Test  #6: rpc_unix_domain_async_call_reply_ok ............   Passed    1.04 sec
      Start  7: rpc_unix_domain_sync_call_reply_delayed
 7/12 Test  #7: rpc_unix_domain_sync_call_reply_delayed ........   Passed    5.04 sec
      Start  8: rpc_unix_domain_async_call_reply_delayed
 8/12 Test  #8: rpc_unix_domain_async_call_reply_delayed .......   Passed    2.04 sec
      Start  9: rpc_unix_domain_sync_call_reply_error
 9/12 Test  #9: rpc_unix_domain_sync_call_reply_error ..........   Passed    1.05 sec
      Start 10: rpc_unix_domain_async_call_reply_error
10/12 Test #10: rpc_unix_domain_async_call_reply_error .........   Passed    1.04 sec
      Start 11: rpc_unix_domain_sync_call_timeout_reply_ok
11/12 Test #11: rpc_unix_domain_sync_call_timeout_reply_ok .....   Passed    1.04 sec
      Start 12: rpc_unix_domain_sync_call_timeout_reply_none
12/12 Test #12: rpc_unix_domain_sync_call_timeout_reply_none ...   Passed    4.04 sec

100% tests passed, 0 tests failed out of 12

Total Test time (real) =  43.24 sec

Documentation

$ make doc

yail's People

Contributors

agrewal707 avatar

Watchers

James Cloos avatar

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.