새로운 C ++ 17 헤더 전용 구현-> JSON-RPC-CXX를 만들었습니다.
주인
이 프레임 워크는 C ++에 대한 크로스 플랫폼 JSON-RPC (원격 절차 호출) 지원을 제공합니다. 완전히 JSON-RPC 2.0 & 1.0 호환입니다.

다음 RPC 프로젝트에서 Libjson-RPC-CPP를 사용한 5 가지 이유
Libjson-RPC-CPP를 사용해야하는 다른 좋은 이유
make test 사용한 자동 테스트.
데비안 (스트레치)과 우분투 (15.10 이상)
sudo apt-get install libjsonrpccpp-dev libjsonrpccpp-tools페도라
sudo dnf install libjson-rpc-cpp-devel libjson-rpc-cpp-tools아치 리눅스
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-cpp창
여기에는 컴파일 된 패키지를 사용할 준비가되어 있습니다. 다운로드 설치 프로그램 EXE 실행 만 다운로드하십시오.
유닉스
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 단위 테스트 스위트는 비활성화되지 않습니다.-DCOMPILE_STUBGEN=NO 스튜브 게이터 구축을 비활성화합니다.-DCOMPILE_EXAMPLES=NO 예제.-DHTTP_SERVER=NO libmicrohttpd webserver를 비활성화합니다.-DHTTP_CLIENT=NO .-DREDIS_SERVER=NO Redis 서버 커넥터를 비활성화합니다.-DREDIS_CLIENT=NO Redis 클라이언트 커넥터를 비활성화합니다.-DUNIX_DOMAIN_SOCKET_SERVER=YES UNIX 도메인 소켓 서버 커넥터를 활성화합니다.-DUNIX_DOMAIN_SOCKET_CLIENT=YES UNIX 도메인 소켓 클라이언트 커넥터를 활성화합니다.-DFILE_DESCRIPTOR_SERVER=NO 파일 디스크립터 서버 커넥터를 비활성화합니다.-DFILE_DESCRIPTOR_CLIENT=NO 파일 설명자 클라이언트 커넥터를 비활성화합니다.-DTCP_SOCKET_SERVER=NO tcp socket server 커넥터를 비활성화합니다.-DTCP_SOCKET_CLIENT=NO tcp socket 클라이언트 커넥터를 비활성화합니다. 이 예제는 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 sampleclientContributing.md를 살펴보십시오
당신은 또한 기부 할 수도 있습니다
Changelogs는 여기에서 찾을 수 있습니다.
우리는이 프레임 워크를 업데이트 할 때 문제를 방지하기 위해 API/ABI를 안정적으로 유지하기 위해 최선을 다합니다. 호환성 보고서는 여기에서 찾을 수 있습니다.
이 프레임 워크는 MIT에 따라 라이센스가 부여됩니다. 이 모든 라이브러리 종속성은 MIT 호환 라이센스에 따라 라이센스가 부여됩니다.
이 라이브러리를 사용하고 유용하다고 생각하면 알려 주시면 매우 기뻐할 것입니다.