rpclib sucht Betreuer
Wenn Sie nach einer ähnlichen Bibliothek mit Unterstützung für JSON-RPC und asynchrone Vorgänge suchen, schauen Sie sich packio an.
rpclib
ist eine RPC-Bibliothek für C++, die sowohl eine Client- als auch eine Serverimplementierung bereitstellt. Es wurde mit modernem C++14 erstellt und erfordert daher einen aktuellen Compiler. Wichtigste Highlights:
# include < iostream >
# include " rpc/server.h "
void foo () {
std::cout << " foo was called! " << std::endl;
}
int main ( int argc, char *argv[]) {
// Creating a server that listens on port 8080
rpc::server srv ( 8080 );
// Binding the name "foo" to free function foo.
// note: the signature is automatically captured
srv. bind ( " foo " , &foo);
// Binding a lambda function to the name "add".
srv. bind ( " add " , []( int a, int b) {
return a + b;
});
// Run the server loop.
srv. run ();
return 0 ;
}
Wenn srv.run()
aufgerufen wird, startet rpclib
die Serverschleife, die auf eingehende Verbindungen lauscht und versucht, Aufrufe an die gebundenen Funktionen zu versenden. Die Funktionen werden von dem Thread aufgerufen, von dem aus run
aufgerufen wurde. Es gibt auch async_run
, das Arbeitsthreads erzeugt und sofort zurückkehrt.
# include < iostream >
# include " rpc/client.h "
int main () {
// Creating a client that connects to the localhost on port 8080
rpc::client client ( " 127.0.0.1 " , 8080 );
// Calling a function with paramters and converting the result to int
auto result = client. call ( " add " , 2 , 3 ). as < int >();
std::cout << " The result is: " << result << std::endl;
return 0 ;
}
Alle geplanten 1.0.0-Funktionen sind fertig und getestet; Der aktuelle Zustand ist produktionsbereit.
Diese Liste wird aktualisiert, sobald ich erfahre, dass mehr Personen die Bibliothek nutzen. Lassen Sie mich wissen, wenn Sie nicht möchten, dass Ihr Projekt hier aufgeführt wird.
rpclib
baut auf den Bemühungen fantastischer C++-Projekte auf. In keiner bestimmten Reihenfolge:
fmtlib
, von Victor Zverovich (Website)Grüße an