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.
- autotools and libtool
- 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.
- Python v2.x
- xNix and Windows
- Doxygen and Graphviz
If you want to create a manual, install doxygen and graphviz.
- Doxygen and Graphviz
How to make
$ git submodule update --init --recursive
- 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_wstunnel | - 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. - patch
Bug fixes and security fixes etc.
License
The MIT License (MIT) See LICENSE for details.
And see some submodule LICENSEs(exist at deps dir).