How wechaty/grpc works
Wechaty gRPC defines the Puppet RPC contract and exposes it through a Node.js package, with client libraries available for several other languages. A consumer uses the exported package and its protocol, generated message types, and stream helpers to interact with a Puppet service. The schema covers lifecycle and events as well as contact, friendship, messaging, room, tag, and file-transfer operations. The repository also exposes OpenAPI data and Google protobuf wrappers. Polyglot bindings are documented capabilities, but their generated runtime implementations are not sampled here; links to them reflect the README’s description of stub generation, not inspected call paths.
Main entry points: puppet.proto Puppet RPC · mod.ts Node exports · cjs.ts Generated JS assets · proto.ts Proto loader
Components 22
RPC contract
- Puppet RPC
proto/wechaty/puppet.proto - Lifecycle and events
proto/wechaty/puppet/base.proto - Contacts and friendship
proto/wechaty/puppet/contact.proto - Messages and media
proto/wechaty/puppet/message.proto - Rooms and members
proto/wechaty/puppet/room.proto - Other RPC domains
proto/wechaty/puppet
Node package
- Node exports
src/mod.ts - Proto loader
src/proto.ts - OpenAPI loader
src/openapi.ts - Version config
src/config.ts - Package metadata
src/package-json.ts - Generated JS assets
src/cjs.ts - Code root helper
commonjs/code-root.cjs - Google protobuf types
src/google.ts - Chunk transforms
src/chunk-transformer.ts - CommonJS support
commonjs
Language clients
- Python client
polyglot/python - Go client
polyglot/go - Java client
polyglot/java - PHP client
polyglot/php - C# client
polyglot/csharp/Wechaty.Grpc
Other components
- API consumer
Connections 19
- API consumer → Node exports: imports
README.md - Node exports → Proto loader: exports
src/mod.ts - Node exports → OpenAPI loader: exports
src/mod.ts - Node exports → Generated JS assets: imports
src/mod.ts - Node exports → Version config: imports
src/mod.ts - Node exports → Google protobuf types: exports
src/mod.ts - Node exports → Chunk transforms: exports
src/mod.ts - Proto loader → Generated JS assets: imports
src/proto.ts - Proto loader → Puppet RPC: reads
src/proto.ts - OpenAPI loader → Generated JS assets: imports
src/openapi.ts - OpenAPI loader → Version config: uses type
src/openapi.ts - Version config → Package metadata: reads
src/config.ts - Generated JS assets → Code root helper: imports
src/cjs.ts - Puppet RPC → CommonJS support: generates stubs
README.md - Puppet RPC → Python client: generates stubs
README.md - Puppet RPC → Go client: generates stubs
README.md - Puppet RPC → Java client: generates stubs
README.md - Puppet RPC → PHP client: generates stubs
README.md - Puppet RPC → C# client: generates stubs
README.md