Skip to content

yujiono/linear-cpp

 
 

Repository files navigation

Linear C++ Build Status

Overview

a msgpack-rpc + α implementation for C++ language.

Build Instructions

Required tools and Dependencies

  • xNix
    • autotools and libtool
      aclocal, autoheader, automake, autoconf and libtoolize
    • OpenSSL v1.0.1 or later
      If you want to use {SSL, WSS} transport, install openssl developer packages.
  • Windows
    • Python v2.x
      needed by gyp for creating a solution file etc.
    • OpenSSL v1.0.1 or later
      If you want to use {SSL, WSS} transport, download binary distributions from https://www.openssl.org/community/binaries.html and install it.
    • Windows SDK
      Your application must link advapi32, iphlpapi, psapi, shell32, userenv and ws2_32.(needed by libuv) And must link gdi32 and user32 when using OpenSSL.
  • xNix and Windows
    • Doxygen and Graphviz
      If you want to create a manual, install doxygen and graphviz.

How to make

  • xNix
$ ./bootstrap
$ ./configure [--prefix=/path/to/install] [--with-ssl=/path/to/OpenSSL]
$ make clean all install
$ cd doc; make doc

For more options, please check

$ ./configure --help
  • Windows
$ vcbuild.bat [--prefix=/path/to/install] [--with-ssl=/path/to/OpenSSL] [shared]

For more options, please check

$ vcbuild.bat --help

You can find headers at /path/to/install/include, libraries at /path/to/install/lib and documents at ${top_project_dir}/doc/html/index.html.

Available Network Architecture

Basic

+-----------+         +-----------+
| TCPClient | - TCP - | TCPServer |
+-----------+         +-----------+

Behind WebServer with WebSocket Proxy

+-----------+               +------------+               +----------+
| WSClient  | - WebSocket - | nginx etc. | - WebSocket - | WSServer |
+-----------+               +------------+               +----------+

Behind WebServer with WebSocket-TCP Proxy

+-----------+               +---------------------------+         +-----------+
| WSClient  | - WebSocket - | lighttpd w/ mod_websocket | - TCP - | TCPServer |
+-----------+               +---------------------------+         +-----------+

Combination

You can create an application that supports muliti protocols like follows.

+-----------+                   +-------------------------+         +-----------+
| WSSClient | - Sec-WebSocket - | WSSServer and TCPServer | - TCP - | TCPClient |
+-----------+                   +-------------------------+         +-----------+

Version Policy

  • major
    APIs and specifications are changed significantly, so you need to update server and client applications at the same time.
  • minor
    APIs are changed only slightly, so you need to rewrite applications if using appropriate APIs.
  • revision
    Bug fixes and security fixes etc.

License

The MIT License (MIT)
See LICENSE for details.

And see some submodule LICENSEs(exist at deps dir).

About

msgpack-rpc + α for C++ language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.4%
  • Python 2.3%
  • Batchfile 1.8%
  • Shell 1.2%
  • C 0.3%