{"id":27734302,"url":"https://github.com/chxuan/czrpc","last_synced_at":"2025-07-26T06:05:22.632Z","repository":{"id":77439711,"uuid":"79789253","full_name":"chxuan/czrpc","owner":"chxuan","description":"A modern RPC framework based on protobuf","archived":false,"fork":false,"pushed_at":"2017-07-30T12:45:30.000Z","size":211,"stargazers_count":7,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-11T07:51:49.478Z","etag":null,"topics":["asio","mondern","protobuf","rpc"],"latest_commit_sha":null,"homepage":"https://github.com/chxuan/czrpc","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chxuan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-01-23T09:23:42.000Z","updated_at":"2024-12-24T19:47:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"743fbf19-9a63-4fd3-8ec6-0c73803f3ffd","html_url":"https://github.com/chxuan/czrpc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chxuan/czrpc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chxuan%2Fczrpc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chxuan%2Fczrpc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chxuan%2Fczrpc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chxuan%2Fczrpc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chxuan","download_url":"https://codeload.github.com/chxuan/czrpc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chxuan%2Fczrpc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267127563,"owners_count":24040074,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-26T02:00:08.937Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asio","mondern","protobuf","rpc"],"created_at":"2025-04-28T13:04:35.817Z","updated_at":"2025-07-26T06:05:22.584Z","avatar_url":"https://github.com/chxuan.png","language":"C++","readme":"A modern RPC framework based on protobuf \n===============================================\n\n\u003e czrpc是一个纯c++14开发，header-only，使用方便的RPC库。\n\n![License][1] \n\n## Getting started\n首先下载czrpc：\n\n    git clone https://github.com/chxuan/czrpc.git\n\n下载过后包含czrpc头文件即可使用。\n\n## Tutorial\n\n* **Simple server**\n\n    ```cpp\n    #include \u003ciostream\u003e\n    #include \"czrpc/server/server.hpp\"\n    #include \"common.pb.h\"\n    \n    void echo(const czrpc::message::request_ptr\u0026 req, const czrpc::message::response_ptr\u0026 rsp)\n    {\n        rsp-\u003eset_response(req-\u003emessage());\n    }\n    \n    int main()\n    {\n        // 1.创建rpc服务器对象\n        czrpc::server::server server;\n        try\n        {\n            // 2.绑定echo函数\n            server.bind(\"echo\", \u0026echo);\n    \n            // 3.配置监听参数并启动事件循环（非阻塞）\n            // 服务端默认启动一个ios线程和一个work线程\n            server.listen(\"0.0.0.0:50051\").run();\n        }\n        catch (std::exception\u0026 e)\n        {\n            std::cout \u003c\u003c e.what() \u003c\u003c std::endl;\n            return 0;\n        }\n    \n        std::cin.get();\n        return 0;\n    }\n    ```\n    \n* **Simple client**\n    ```cpp\n    #include \u003ciostream\u003e\n    #include \"czrpc/client/client.hpp\"\n    #include \"common.pb.h\"\n    \n    int main()\n    {   \n        // 1.创建rpc客户端对象\n        czrpc::client::rpc_client client;\n        try\n        {\n            // 2.配置连接参数并启动事件循环（非阻塞）\n            client.connect(\"127.0.0.1:50051\").run();\n    \n            auto req = std::make_shared\u003cecho_message\u003e();\n            req-\u003eset_echo_str(\"Hello world\");\n            req-\u003eset_echo_num(100);\n    \n            // 3.同步调用echo函数\n            auto rsp = client.call(\"echo\", req);\n        }\n        catch (std::exception\u0026 e)\n        {\n            std::cout \u003c\u003c e.what() \u003c\u003c std::endl;\n            return 0;\n        }\n    \n        std::cin.get();\n        return 0;\n    }\n    ```\n\n    更多例子请查看[samples][2]。\n    \n## 开发平台\n\n* Ubuntu16.04 LTS gcc5.3.1\n* MSVC2015\n\n## 依赖性\n\n* boost\n* protobuf\n* c++14\n\n## DONE\n\n* TCP长连接。\n* 同步调用。\n* 异步调用。\n* 日志记录。\n* worker线程池处理任务。\n* 客户端超时处理。\n* 支持原始数据发送。\n* 支持发布/订阅模式。\n* 数据重发功能。\n\n## TODO\n\n* 服务注册、发现。\n* 支持HTTP/HTTPS协议。\n\n\n## License\nThis software is licensed under the [MIT license][3]. © 2017 chxuan\n\n\n  [1]: http://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\n  [2]: https://github.com/chxuan/czrpc/tree/master/samples\n  [3]: https://github.com/chxuan/czrpc/blob/master/LICENSE\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchxuan%2Fczrpc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchxuan%2Fczrpc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchxuan%2Fczrpc/lists"}