rpclib está buscando mantenedores
Si está buscando una biblioteca similar con soporte para JSON-RPC y operaciones asíncronas, consulte packio .
rpclib
es una biblioteca RPC para C++, que proporciona una implementación tanto de cliente como de servidor. Está construido con C++ 14 moderno y, como tal, requiere un compilador reciente. Principales aspectos destacados:
# 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 ;
}
Cuando se llama srv.run()
, rpclib
inicia el bucle del servidor que escucha las conexiones entrantes e intenta enviar llamadas a las funciones vinculadas. Las funciones se llaman desde el hilo desde donde se llamó run
. También existe async_run
que genera subprocesos de trabajo y regresa inmediatamente.
# 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 ;
}
Todas las funciones 1.0.0 planificadas están listas y probadas; el estado actual está listo para producción.
Esta lista se actualiza a medida que conozco más personas que utilizan la biblioteca; Déjame saber si no quieres que tu proyecto aparezca aquí.
rpclib
se basa en los esfuerzos de fantásticos proyectos de C++. Sin ningún orden en particular:
fmtlib
, por Victor Zverovich (sitio web)Saludos a