#rpc #tiny #server #detail #client #rpc-core

rpc-core-net

为Rust编写的一个小巧的RPC库

4个版本

0.2.2 2023年12月16日
0.2.1 2023年12月15日
0.2.0 2023年12月11日
0.1.0 2023年11月28日

1762网络编程

MIT 协议

115KB
3K SLoC

rpc-core-net

Build Status Latest version Documentation License

使用方法

在项目目录中运行以下Cargo命令

cargo add rpc-core-net

或将以下行添加到您的Cargo.toml中

[dependencies]
rpc-core-net = "0.2.2"

示例

详细信息请参阅 examplesexamples

  • 服务器

    fn server() {
        let rpc = Rpc::new(None);
        rpc.subscribe("cmd", |msg: String| -> String {
            assert_eq!(msg, "hello");
            "world".to_string()
        });
      
        let server = rpc_server::RpcServer::new(6666, RpcConfigBuilder::new().rpc(Some(rpc.clone())).build());
        server.start();
    }
    
  • 客户端

    fn client() {
        let rpc = Rpc::new(None);
        let client = rpc_client::RpcClient::new(RpcConfigBuilder::new().rpc(Some(rpc.clone())).build());
        client.set_reconnect(1000);
        client.open("localhost", 6666);
    
        let result = rpc_c.cmd("cmd").msg("hello").future::<String>().await;
        assert_eq!(result.result.unwrap(), "world");
    }
    

许可证

本项目的许可证为MIT许可证

依赖项

~3–12MB
~130K SLoC