rpclib recherche des mainteneurs
Si vous recherchez une bibliothèque similaire prenant en charge les opérations JSON-RPC et asynchrones, consultez packio .
rpclib
est une bibliothèque RPC pour C++, fournissant à la fois une implémentation client et serveur. Il est construit en utilisant le C++ 14 moderne et, en tant que tel, nécessite un compilateur récent. Principaux points forts :
# 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 ;
}
Lorsque srv.run()
est appelé, rpclib
démarre la boucle du serveur qui écoute les connexions entrantes et tente de distribuer les appels aux fonctions liées. Les fonctions sont appelées à partir du thread à partir duquel run
a été appelé. Il existe également async_run
qui génère des threads de travail et revient immédiatement.
# 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 ;
}
Toutes les fonctionnalités prévues pour la version 1.0.0 sont réalisées et testées ; l'état actuel est prêt pour la production.
Cette liste est mise à jour au fur et à mesure que j'apprends que davantage de personnes utilisent la bibliothèque ; faites-moi savoir si vous ne voulez pas que votre projet soit répertorié ici.
rpclib
s'appuie sur les efforts de fantastiques projets C++. Sans ordre particulier :
fmtlib
, par Victor Zverovich (site web)Bravo à