Nefarious Pomegranate Magnate

    @juzi/wechaty-grpc
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.17 • Public • Published

    Wechaty gRPC

    gRPC Service & Protocol Buffers for Wechaty Puppet

    Node.js NPM C# Nuget Go Java Maven PHP Python PyPI

    NPM Version PyPI Version Java Version PHP Version node Python 3.7 Go Version

    Table of Contents
    1. About
    2. Usage
    3. Development
    4. OpenAPI
    5. gRPC Web
    6. Resources
    7. Contributing
    8. Maintainer
    9. 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:

    • @huan - Huan LI (李卓桓)

    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

    1. Google Cloud APIs - Naming conventions
    2. 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)

    1. v1.0 release
    2. add post event

    v0.33 (Oct 18, 2021)

    • [ ] Rename ENUM from CONTACT_GENDER_MALE to MALE (#110)
    • [ ] Fix typos

    v0.27

    1. ES Modules support
    2. Export generated protocol buffers class as puppet

    v0.20 (Feb 21, 2021)

    1. Rename NPM module name from @chatie/grpc to wechaty-grpc
    2. Add OpenAPI annotations & generators for supporting https://github.com/wechaty/openapi
    3. 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.

    1. Fork the Project
    2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
    3. Commit your Changes (git commit -m 'Add some AmazingFeature')
    4. Push to the Branch (git push origin feature/AmazingFeature)
    5. 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.

    Install

    npm i @juzi/wechaty-grpc

    DownloadsWeekly Downloads

    447

    Version

    1.0.17

    License

    Apache-2.0

    Unpacked Size

    6.31 MB

    Total Files

    653

    Last publish

    Collaborators

    • juzi-admin