新しいC ++ 17ヘッダーのみの実装 - > JSON-RPC-CXXを作成しました。
マスター
このフレームワークは、C ++のクロスプラットフォームJSON-RPC(リモートプロシージャコール)サポートを提供します。完全にJSON-RPC 2.0および1.0互換です。

次のRPCプロジェクトでLibjson-RPC-CPPを使用する5つの正当な理由
Libjson-RPC-CPPを使用する他の正当な理由
make testを使用した自動テスト。
Debian(ストレッチ)とUbuntu(15.10以降)
sudo apt-get install libjsonrpccpp-dev libjsonrpccpp-toolsフェドラ
sudo dnf install libjson-rpc-cpp-devel libjson-rpc-cpp-toolsArch Linux
Arch Linuxの場合、AURにPKGBUILDが提供されています。
sudo aura -A libjson-rpc-cppGentoo Linux
sudo emerge dev-cpp/libjson-rpc-cppMac OS X
OS Xの場合、醸造パッケージが利用可能です。
brew install libjson-rpc-cppWindows
ここには、コンパイルされたパッケージを使用する準備ができています。インストーラーexeを実行するだけです。
Unix
DebianおよびArch Gnu/Linuxベースのシステムの場合、すべての依存関係はパッケージマネージャーを介して利用できます。 OS Xの場合、すべての依存関係はBrewで利用できます
git clone https://github.com/cinemast/libjson-rpc-cpp.git
mkdir -p libjson-rpc-cpp/build
cd libjson-rpc-cpp/build
cmake .. && make
sudo make install
sudo ldconfig # only required for linuxそれでおしまい!
あなたがそれに満足していない場合は、(ディレクトリのビルド内)を使用してシステムからそれをアンインストールするだけです。
sudo make uninstallビルドオプション:
ほとんどのシステムではデフォルトの構成は問題ありませんが、ここに使用可能なコンピレーションフラグがあります。
-DCOMPILE_TESTS=NO disable unit test suite。-DCOMPILE_STUBGEN=NO stabgeneratorの構築を無効にします。-DCOMPILE_EXAMPLES=NO na disable example。-DHTTP_SERVER=NO disable libmicrohttpd webserver。-DHTTP_CLIENT=NOします。-DREDIS_SERVER=NOします。-DREDIS_CLIENT=NOします。-DUNIX_DOMAIN_SOCKET_SERVER=YES UNIXドメインソケットサーバーコネクタを有効にします。-DUNIX_DOMAIN_SOCKET_CLIENT=YES UNIXドメインソケットクライアントコネクタを有効にします。-DFILE_DESCRIPTOR_SERVER=NO file descriptor serverコネクタを無効にします。-DFILE_DESCRIPTOR_CLIENT=NO file descriptorクライアントコネクタを無効にします。-DTCP_SOCKET_SERVER=NO無効にするTCPソケットサーバーコネクタ。-DTCP_SOCKET_CLIENT=NO disable tcp socket client connector。この例は、RPCサーバーとクライアントを作成する最も簡単な方法を示しています。サーバーのみが必要な場合は、ステップ4を無視します。クライアントのみが必要な場合は、ステップ3を無視します。このサンプルのすべてのリソースは、このリポジトリのsrc/examplesディレクトリに見つけることができます。
[
{
"name" : " sayHello " ,
"params" : {
"name" : " Peter "
},
"returns" : " Hello Peter "
},
{
"name" : " notifyServer "
}
]リターン値またはパラメーターのタイプは、それに割り当てられたリテラルによって定義されます。生成されたスタブは、「返される」タイプを使用して応答を検証します。この例では、メソッドと通知を指定する方法を確認できます。
jsonrpcstubに電話してください:
jsonrpcstub spec.json --cpp-server=AbstractStubServer --cpp-client=StubClient
mkdir -p gen
mv abstractstubserver.h gen
mv stubclient.h genこれにより、 AbstractStubServerとStubClientクラスが生成され、 genフォルダーに移動します。
抽象サーバースタブを拡張し、 spec.jsonで定義されているすべての純粋な仮想(要約)メソッドを実装します。
src/examples/stubserver.cppを参照してください
メイン関数では、コンクリートサーバーがインスタンス化されて開始されます。それがすべてサーバーのためです。 JSON-RPC 2.0準拠クライアントは、サーバーに接続できるようになりました。
サーバーを次のようにコンパイルします。
g++ stubserver.cpp -ljsoncpp -lmicrohttpd -ljsonrpccpp-common -ljsonrpccpp-server -o sampleserverSRC/Examples/StubClient.cppを参照してください
クライアントを次のようにコンパイルします。
g++ stubclient.cpp -ljsoncpp -lcurl -ljsonrpccpp-common -ljsonrpccpp-client -o sampleclientConvinting.mdをご覧ください
また、Viaで寄付することもできます
Changelogsはここにあります。
このフレームワークを更新する際の問題を防ぐために、API/ABIを安定させるために最善を尽くします。互換性レポートはこちらにあります。
このフレームワークはMITの下でライセンスされています。このライブラリの依存関係はすべて、MIT互換ライセンスの下でライセンスされています。
このライブラリを使用して有用であることがある場合は、お知らせください。