{"id":19922180,"url":"https://github.com/zyallers/rpcx-framework","last_synced_at":"2026-02-03T03:03:30.720Z","repository":{"id":57647528,"uuid":"443230922","full_name":"ZYallers/rpcx-framework","owner":"ZYallers","description":"An RPC microservices framework based on rpcx, simple and easy to use, ultra fast and efficient, powerful, service discovery, service governance, service layering, version control, routing label registration.","archived":false,"fork":false,"pushed_at":"2024-12-05T04:11:01.000Z","size":89,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-05T05:18:30.675Z","etag":null,"topics":["etcdv3","framework","golang","gorm","rpc","rpcx"],"latest_commit_sha":null,"homepage":"","language":"Go","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/ZYallers.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":"2021-12-31T02:14:11.000Z","updated_at":"2024-12-05T04:10:25.000Z","dependencies_parsed_at":"2022-08-25T06:50:39.805Z","dependency_job_id":null,"html_url":"https://github.com/ZYallers/rpcx-framework","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Frpcx-framework","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Frpcx-framework/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Frpcx-framework/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZYallers%2Frpcx-framework/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZYallers","download_url":"https://codeload.github.com/ZYallers/rpcx-framework/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233550368,"owners_count":18692832,"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":["etcdv3","framework","golang","gorm","rpc","rpcx"],"created_at":"2024-11-12T22:09:54.788Z","updated_at":"2025-09-19T04:32:17.012Z","avatar_url":"https://github.com/ZYallers.png","language":"Go","readme":"# RPCX Framework\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/ZYallers/rpcx-framework)](https://goreportcard.com/report/github.com/ZYallers/rpcx-framework)\n[![MIT license](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://travis-ci.org/ZYallers/rpcx-framework.svg?branch=master)](https://travis-ci.org/ZYallers/rpcx-framework) \n[![Foundation](https://img.shields.io/badge/Golang-Foundation-green.svg)](http://golangfoundation.org) \n[![GoDoc](https://pkg.go.dev/badge/github.com/ZYallers/rpcx-framework?status.svg)](https://pkg.go.dev/github.com/ZYallers/rpcx-framework?tab=doc)\n[![Sourcegraph](https://sourcegraph.com/github.com/ZYallers/rpcx-framework/-/badge.svg)](https://sourcegraph.com/github.com/ZYallers/rpcx-framework?badge)\n[![Release](https://img.shields.io/github/release/ZYallers/rpcx-framework.svg?style=flat-square)](https://github.com/ZYallers/rpcx-framework/releases)\n[![TODOs](https://badgen.net/https/api.tickgit.com/badgen/github.com/ZYallers/rpcx-framework)](https://www.tickgit.com/browse?repo=github.com/ZYallers/rpcx-framework)\n[![goproxy.cn](https://goproxy.cn/stats/github.com/ZYallers/rpcx-framework/badges/download-count.svg)](https://goproxy.cn)\n\n\u003e An RPC microservices framework based on rpcx. \n\u003e\n\u003e Features: simple and easy to use, ultra fast and efficient, powerful, service discovery, service governance, service layering, version control, routing label registration.\n\u003e\n\u003e Best microservices framework in Go, like alibaba Dubbo, but with more features, Scale easily. Try it. Test it. If you feel it's better, use it! \n\u003e\n\u003e Java有Dubbo, Golang有RPCX!\n\n# Installation\nTo install rpcx-framework package, you need to install Go and set your Go workspace first.\n\n1. The first need Go installed (version 1.11+ is required), then you can use the below Go command to install rpcx-framework.\n```bash\n$ go get -u github.com/ZYallers/rpcx-framework\n```\n\n2. Import it in your code:\n```go \nimport \"github.com/ZYallers/rpcx-framework\" \n```\n\n# Examples\n\nThe below is a simple example.\n\n```go\npackage main\n\nimport (\n\t\"github.com/smallnest/rpcx/log\"\n\tframework \"gitlab.sys.hxsapp.net/hxs/rpcx-framework\"\n)\n\nfunc init() {\n\tframework.LoadConfig()\n}\n\nfunc main() {\n\t//share.Trace = true\n\ts := framework.NewService()\n\tlog.Infof(\"Service-\u003e %+v; Etcd-\u003e %+v\", *s, *(s.Etcd))\n\ts.Serve()\n}\n\n```\n\n# How to deploy and run?\nCopy the boot script \"script / bootstrap. Sh\" to the root directory of your project, and then execute it; If successful, you will see the following information:\n```\n current path: /Users/cloud/gopath_hxsapp/rpcx-demo \n download produce.sh \n  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current\n                                 Dload  Upload   Total   Spent    Left  Speed\n100  7791  100  7791    0     0    221      0  0:00:35  0:00:35 --:--:--  1904\n download produce.sh(/Users/cloud/gopath_hxsapp/rpcx-demo/./bin/produce.sh) finished \n service config: \n ServiceName: rpcx-demo \n ServiceAddr: 172.18.28.123:8978 \n LogDir: /apps/logs/go/rpcx-demo \n Operation: \n     status                                  View service status\n     sync                                    Synchronization service vendor resources\n     build                                   Compile and generate service program\n     reload                                  Smooth restart service\n     quit                                    Stop service\n     help                                    View help information for the help command\n For more information about an action, use the help command to view it\n```\nAt the same time, after successful execution, it will create a new `bin` directory in your current directory, \nand generate a service compilation and deployment script `produce sh`\n\nExecute the deployment script `./bin/produce.sh help`, it will tell you what to do next.\n```\n service config: \n ServiceName: rpcx-demo \n ServiceAddr: 172.18.28.123:8978 \n LogDir: /apps/logs/go/rpcx-demo \n Operation: \n     status                                  View service status\n     sync                                    Synchronization service vendor resources\n     build                                   Compile and generate service program\n     reload                                  Smooth restart service\n     quit                                    Stop service\n     help                                    View help information for the help command\n For more information about an action, use the help command to view it\n```\n\n# Feature\nAn RPC service framework based on rpcx (fast, easy-to-use but powerful RPC service governance framework of go language).\n\n- easy to use\n- super fast and efficient\n- powerful\n- service discovery\n- service governance\n- service layering\n- version control\n- routing label registration.\n\n### RPCX\nrpcx is a RPC framework like [Alibaba Dubbo](http://dubbo.io/) and [Weibo Motan](https://github.com/weibocom/motan).\n\n**rpcx** is created for targets:\n1. **Simple**: easy to learn, easy to develop, easy to intergate and easy to deploy\n2. **Performance**: high perforamnce (\u003e= grpc-go)\n3. **Cross-platform**: support _raw slice of bytes_, _JSON_, _Protobuf_ and _MessagePack_. Theoretically it can be used with java, php, python, c/c++, node.js, c# and other platforms\n4. **Service discovery and service governance**: support zookeeper, etcd and consul.\n\n\nIt contains below features\n- Support raw Go functions. There's no need to define proto files.\n- Pluggable. Features can be extended such as service discovery, tracing.\n- Support TCP, HTTP, [QUIC](https://en.wikipedia.org/wiki/QUIC) and [KCP](https://github.com/skywind3000/kcp)\n- Support multiple codecs such as JSON, Protobuf, [MessagePack](https://msgpack.org/index.html) and raw bytes.\n- Service discovery. Support peer2peer, configured peers, [zookeeper](https://zookeeper.apache.org), [etcd](https://github.com/coreos/etcd), [consul](https://www.consul.io) and [mDNS](https://en.wikipedia.org/wiki/Multicast_DNS).\n- Fault tolerance：Failover, Failfast, Failtry.\n- Load banlancing：support Random, RoundRobin, Consistent hashing, Weighted, network quality and Geography.\n- Support Compression.\n- Support passing metadata.\n- Support Authorization.\n- Support heartbeat and one-way request.\n- Other features: metrics, log, timeout, alias, circuit breaker.\n- Support bidirectional communication.\n- Support access via HTTP so you can write clients in any programming languages.\n- Support API gateway.\n- Support backup request, forking and broadcast.\n\n# Reference\n- RPCX：https://rpcx.io\n- Redis Command：http://redis.cn/commands.html\n- GORM：https://gorm.io/zh_CN/docs\n- Docker：http://www.dockerinfo.net/document\n\n# License\nReleased under the [MIT License](https://github.com/ZYallers/rpcx-framework/blob/master/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyallers%2Frpcx-framework","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzyallers%2Frpcx-framework","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzyallers%2Frpcx-framework/lists"}