{"id":19992124,"url":"https://github.com/RabbitTeam/RabbitCloud","last_synced_at":"2025-05-04T11:30:41.357Z","repository":{"id":9328799,"uuid":"61596211","full_name":"RabbitTeam/RabbitCloud","owner":"RabbitTeam","description":"A lightweight cross-platform RPC.","archived":false,"fork":false,"pushed_at":"2022-07-28T03:14:41.000Z","size":5027,"stargazers_count":333,"open_issues_count":1,"forks_count":130,"subscribers_count":59,"default_branch":"master","last_synced_at":"2024-11-13T04:54:48.515Z","etag":null,"topics":["rpc"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RabbitTeam.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}},"created_at":"2016-06-21T02:35:11.000Z","updated_at":"2024-07-24T09:36:02.000Z","dependencies_parsed_at":"2022-08-19T19:10:41.331Z","dependency_job_id":null,"html_url":"https://github.com/RabbitTeam/RabbitCloud","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitTeam%2FRabbitCloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitTeam%2FRabbitCloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitTeam%2FRabbitCloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RabbitTeam%2FRabbitCloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RabbitTeam","download_url":"https://codeload.github.com/RabbitTeam/RabbitCloud/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252329120,"owners_count":21730553,"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","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":["rpc"],"created_at":"2024-11-13T04:52:02.819Z","updated_at":"2025-05-04T11:30:40.182Z","avatar_url":"https://github.com/RabbitTeam.png","language":"C#","funding_links":[],"categories":["C\\#"],"sub_categories":[],"readme":"# Rabbit RPC\nA lightweight cross-platform RPC.\n## Features\n1. Apache License 2.0 protocol open source\n2. Supports client load balancing (polling and random)\n3. Support ZooKeeper and file sharing the service coordination\n4. Runtime client proxy generation (based Roslyn)\n5. Pre-generated client agent (based Roslyn)\n6. Abstract codec (JSON and ProtoBuffer)\n7. Abstract transmission channel (DotNetty)\n8. Exception information transfer (Local exceptions to the server runtime can be passed to the client)\n9. **NET Core Project structure**\n10. **Cross-platform**\n\n## Overview\n![](http://images2015.cnblogs.com/blog/384997/201607/384997-20160708082111186-595090265.png)\n### Rabbit.Rpc\n1. Rpc core class library, has the following functions:\n2. Service Id generation\n3. Transfer the message model\n4. Type conversion\n5. Service routing abstraction\n6. Serializer abstraction (the default provides JSON serializer)\n7. Transport abstraction\n8. Codec abstraction (default provides JSON codec implementation)\n9. Client runtime (address resolver, address selector, remote call service)\n10. Service-side runtime (service entry management, service executor, service discovery abstraction, RpcServiceAttribute tagging service discovery implementation)\n\n### Rabbit.Rpc.ProxyGenerator\nService Agent Builder, provides features:\n\n1. Service agent implementation generation\n2. Service agent instance creation\n\n### extensions\n#### Rabbit.Rpc.Codec.ProtoBuffer\nProtoBuffer protocol codec implementation.\n\n#### Rabbit.Rpc.Coordinate.Zookeeper\nService Routing Management Based on ZooKeeper.\n\n#### Rabbit.Transport.DotNetty\nImplementation of DotNetty Transmission.\n\n### tools\n#### Rabbit.Rpc.Tests\nUnit test project.\n\n#### Rabbit.Rpc.ClientGenerator\nPre-production service agent tool, provides the following functions:\n\n1. Generate the service proxy implementation code file\n2. Generate the service agent to implement the assembly file\n\n## Performance Testing\nTest environment\n\nOS | CPU | Memory | disk | network | VM\n------------ | ------------- | ------------- | ------------- | ------------- | -------------\nWindows 10 x64 | I7 3610QM | 16GB | SSD | 127.0.0.1 | no\nUbuntu 16.04 x64 | I7 3610QM | 4GB | SSD | 127.0.0.1 | yes\n\n### Windows10 + NETCoreApp1.0 + JSON protocol\nloop 10,000  \nfirst\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;2626ms  \nsecond\u0026ensp;2597ms  \nthird\u0026ensp;\u0026ensp;\u0026ensp;2581ms\n\n### Windows10 + NETCoreApp1.0 + ProtoBuffer protocol\nloop 10,000  \nfirst\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;2567ms  \nsecond\u0026ensp;2617ms  \nthird\u0026ensp;\u0026ensp;\u0026ensp;2474ms\n\n### Ubuntu16.04-x64 + NETCoreApp1.0 + JSON protocol\nloop 10,000  \nfirst\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;3205ms  \nsecond\u0026ensp;3252ms  \nthird\u0026ensp;\u0026ensp;\u0026ensp;2837ms\n\n### Ubuntu16.04-x64 + NETCoreApp1.0 + ProtoBuffer protocol\nloop 10,000  \nfirst\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;3391ms  \nsecond\u0026ensp;3391ms  \nthird\u0026ensp;\u0026ensp;\u0026ensp;3574ms\n\n## related articles\n* [拥抱.NET Core，跨平台的轻量级RPC：Rabbit.Rpc](http://www.cnblogs.com/ants/p/5652132.html)\n* [.NET轻量级RPC框架：Rabbit.Rpc](http://www.cnblogs.com/ants/p/5605754.html)\n\n## communication\n* [QQ Group：384413261（RabbitHub）](http://jq.qq.com/?_wv=1027\u0026k=29DzAfj)\n* [Email：majian159@live.com](mailto:majian159@live.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRabbitTeam%2FRabbitCloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRabbitTeam%2FRabbitCloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRabbitTeam%2FRabbitCloud/lists"}