Table of Contents
-
About
-
Usage
-
Development
- OpenAPI
- gRPC Web
- Resources
- Contributing
- Maintainer
- Copyright & License
About
gRPC is a modern open-source high-performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking, and authentication. It is also applicable in the last mile of distributed computing to connect devices, mobile applications, and browsers to backend services.
Usage
Node.js
wechaty-grpc@NPM
Docs:
Maintainer:
Python
chatie-grpc@PyPI
Maintainer:
Go
github.com/wechaty/go-grpc
Maintainer:
Java
https://mvnrepository.com/artifact/io.github.wechaty/grpc
Maven:
<dependency>
<groupId>io.github.wechaty</groupId>
<version>0.11.25</version>
<artifactId>grpc</artifactId>
</dependency>
Gradle:
compile 'io.github.wechaty:grpc:0.11.25'
Maintainer:
PHP
github.com/wechaty/php-grpc
Maintainer:
CSharp
Wechaty.Grpc @ Nuget
Maintainer:
Development
Debug
grpcc --proto ./service/myservice.proto --address 127.0.0.1:3466
Build
./scripts/install-protoc.sh
npm install
https://github.com/google/protobuf/releases/latest
Generate Stubs
npm run generate
1. JS for Protocol Buffer
protoc \
--js_out="import_style=commonjs,binary:${OUT_DIR}"
https://github.com/google/protobuf/releases/latest
2. JS for gRPC Stubs
protoc \
--plugin="protoc-gen-grpc=`which grpc_tools_node_protoc_plugin`" \
--grpc_out="${OUT_DIR}"
https://www.npmjs.com/package/grpc-tools
3. TypeScript Typing Definations for Protocol Buffer & gRPC Stubs
protoc \
--plugin="protoc-gen-grpc=node_modules/grpc_tools_node_protoc_ts/bin/protoc-gen-ts" \
--grpc_out="${OUT_DIR}"
https://github.com/agreatfool/grpc_tools_node_protoc_ts
4. JS & TS for gRPC Web
protoc \
--plugin="protoc-gen-ts=node_modules/ts-protoc-gen/bin/protoc-gen-ts" \
--ts_out="service=true:${OUT_DIR}"
https://github.com/improbable-eng/ts-protoc-gen
Naming conventions & Style Guide
- Google Cloud APIs - Naming conventions
- Protocol Buffers - Developer Guide - Style Guide
OpenAPI
Learn more about the RESTful API service for Wechaty from Wechaty OpenAPI.
gRPC Web
RESOURCES
Documentation
Links
Protocol Buffer
Thanks to the ecosystem of gRPC, we can generate OpenAPI Specification from our gRPC proto definitions automatically.
We are using gRPC to JSON proxy generator following the gRPC HTTP spec as the OpenAPI Specification generator (protoc-gen-openapiv2), and using Like grpc-gateway, but written in node and dynamic project to serve an HTTP RESTful API to gRPC proxy.
Image credit: gRPC Gateway
Learn more about the RESTful API service for Wechaty from Wechaty OpenAPI.
See also:
gRPC Web
Resources
Check out RESOURCES.md file for learning resources.
Guidelines
Changelog
master v1.0 (Mar 14, 2022)
- v1.0 release
- add
post
event
v0.33 (Oct 18, 2021)
v0.27
- ES Modules support
- Export generated protocol buffers class as
puppet
v0.20 (Feb 21, 2021)
- Rename NPM module name from
@chatie/grpc
to wechaty-grpc
- Add OpenAPI annotations & generators for supporting https://github.com/wechaty/openapi
- Code clean.
v0.18 (Oct 15, 2020)
- Add new
MessageFileStream
and MessageImageStream
to replace the MessageFile
and MessageImage
method to avoid blocking nodejs event loop when sending large files (#88) by @windmemory - Add new
MessageSendFileStream
to replace the MessageSendFile
method to avoid blocking nodejs event loop when sending large files (#89) by @windmemory
v0.17 (Aug 5, 2020)
v0.13 (Apr 19, 2020)
v0.11 (Apr 10, 2020)
- Add Go Support (#50 by @dchaofei)
- Publish Go Module at <github.com/wechaty/go-grpc>
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
See CONTRIBUTING.md for more details.
Releases
Since its creation in 2016, a number of Wechaty versions have been released. For more information about the release history and the current stable version, you can read the Wechaty release notes on Github.
Contributors
Made with contrib.rocks.
Maintainer
Wechaty is maintained by Huan, Rui, and a community of Open Source Contributors. We are always looking for people to join the Wechaty community to maintain the Wechaty codebase and documentation. You necessarily don't have to be a programmer to contribute to Wechaty. To get started contributing, you can read the CONTRIBUTING.md.
Getting help
Wechaty has a community of very helpful contributors on different platforms you can join to get help from. Before joining any of the communities, we recommend that you read our Code of conduct]o that you adhere to our community guidelines. A full list of the different Wechaty communities can be accessed from the Wechaty community section of this documentation.
Copyright & License
Wechaty is an Open Source Project. It is released under Apache-2.0 license and the corresponding documentation is released under the Creative Commons license.