{"id":38364225,"url":"https://github.com/ibinarytree/koala","last_synced_at":"2026-01-17T03:22:18.200Z","repository":{"id":57488540,"uuid":"184888771","full_name":"ibinarytree/koala","owner":"ibinarytree","description":"koala is  go micro service framework","archived":false,"fork":false,"pushed_at":"2023-02-24T23:24:08.000Z","size":97782,"stargazers_count":98,"open_issues_count":4,"forks_count":51,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-06-20T11:09:34.204Z","etag":null,"topics":["golang","high-performance","microservice","middleware","rpc"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ibinarytree.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2019-05-04T11:57:04.000Z","updated_at":"2024-01-02T10:23:02.000Z","dependencies_parsed_at":"2024-06-18T21:21:46.920Z","dependency_job_id":"183ac0bf-611e-494a-bf28-bb56421b7045","html_url":"https://github.com/ibinarytree/koala","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/ibinarytree/koala","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibinarytree%2Fkoala","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibinarytree%2Fkoala/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibinarytree%2Fkoala/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibinarytree%2Fkoala/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ibinarytree","download_url":"https://codeload.github.com/ibinarytree/koala/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ibinarytree%2Fkoala/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T02:39:23.645Z","status":"ssl_error","status_checked_at":"2026-01-17T02:34:19.649Z","response_time":85,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["golang","high-performance","microservice","middleware","rpc"],"created_at":"2026-01-17T03:22:17.633Z","updated_at":"2026-01-17T03:22:18.174Z","avatar_url":"https://github.com/ibinarytree.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# koala\nkoala是一个基于grpc的高并发、高性能的微服务框架，提供了非常丰富的功能。\n\n# Installation\n\n\n\n- Go Version \u003e= 1.11\n- Grpc Version: google.golang.org/grpc v1.24.0\n- protoc Version \u003e= 3.11.0, 安装地址：https://github.com/protocolbuffers/protobuf/releases\n\n    ```\n    go get github.com/ibinarytree/koala\n    go get github.com/ibinarytree/koala/tools/koala\n\n    ``````\n\n\n\n# Usage \n1. 生成服务端代码\n\nhello.proto\n```\nsyntax = \"proto3\";\npackage hello;\n//使用go_package指定生成的代码路径，下面的代码将会生成到github.com/ibinarytree/hello/proto_gen/hello这个目录下；\n//大家可以根据自己项目的目录指定这个路径\n//一般建议大家把proto文件和生成的代码统一进行管理，放到一个单独的代码库中；\noption go_package=\"github.com/ibinarytree/hello/proto_gen/hello\";\n\nmessage HelloRequest {\n  string name = 1;\n}\n\nmessage HelloResponse {\n  string reply = 1;\n}\n\nservice HelloService {\n  //sayhello 方法\n  rpc SayHello(HelloRequest) returns (HelloResponse){}\n}\n\n```\n生成代码\n```\nkoala -s -f hello.proto\n```\n注意：如果hello.proto有import其他proto文件，需要通过proto_path指定引入的proto文件的目录，通过-i文件生成引入的proto文件代码。\n\n2. 生成客户端代码\n```\nkoala -c -f hello.proto\n```\n3. 编译，生成代码之后，执行build.sh即可以编译。window执行build.bat\n```\n./build.sh \n```\n4. 运行，编译之后的二进制程序统一放到了output目录，执行output目录下的start.sh即可以启动运行。window执行start.bat\n```\ncd output\n./start.sh\n```\n5. 部署，把output目录打包成output.tar.gz，拷贝到服务端上，然后后台运行即可\n```\nnohup ./start.sh\u0026\n```\n# Question\n- 编译时，报etcd相关错误，比如:undefined: balancer.PickOptions；是因为grpc版本和etcd不兼容导致。解决方法如下：\n\n打开go.mod, 把grpc的版本修改成v1.24.0\n```\nrequire (\n    github.com/golang/protobuf v1.3.4\n    github.com/ibinarytree/koala v1.9.9\n    github.com/smartystreets/goconvey v1.6.4 // indirect\n    golang.org/x/net v0.0.0-20200301022130-244492dfa37a\n    google.golang.org/grpc v1.27.1\n)\n```\n修改后的go.mod内容如下：\n```\nrequire (\n    github.com/golang/protobuf v1.3.4\n    github.com/ibinarytree/koala v1.9.9\n    github.com/smartystreets/goconvey v1.6.4 // indirect\n    golang.org/x/net v0.0.0-20200301022130-244492dfa37a\n    google.golang.org/grpc v1.24.0\n)\n```\n重新编译，问题解决了\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibinarytree%2Fkoala","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fibinarytree%2Fkoala","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fibinarytree%2Fkoala/lists"}