https://github.com/huangjunwen/nproto
Easy to use communication (e.g. rpc/msg/...) components.
https://github.com/huangjunwen/nproto
binlog cdc msgqueue mysql nats-server nats-streaming-server protocol-buffer rpc-library
Last synced: 3 months ago
JSON representation
Easy to use communication (e.g. rpc/msg/...) components.
- Host: GitHub
- URL: https://github.com/huangjunwen/nproto
- Owner: huangjunwen
- License: mit
- Created: 2018-07-29T01:25:58.000Z (over 7 years ago)
- Default Branch: v2
- Last Pushed: 2024-03-13T21:31:46.000Z (about 2 years ago)
- Last Synced: 2024-06-20T12:07:22.537Z (almost 2 years ago)
- Topics: binlog, cdc, msgqueue, mysql, nats-server, nats-streaming-server, protocol-buffer, rpc-library
- Language: Go
- Homepage:
- Size: 1.9 MB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NProto
[](https://goreportcard.com/report/github.com/huangjunwen/nproto)
[](https://travis-ci.org/huangjunwen/nproto)
[](https://codecov.io/gh/huangjunwen/nproto/branch/v2)
Easy to use communication (e.g. rpc/msg/...) components.
This is the second major version (v2). Compare to v1, v2 has re-designed high level interfaces:
Though it's still mainly focus on [**n**ats](https://nats.io) + [**proto**buf](https://developers.google.com/protocol-buffers),
but it's not force to. It's totally ok for implementations to use other encoding schemas (e.g. `json`, `msgpack` ...)
or use other transports (e.g. `http`).
## Packages
- [x] [rpc](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/rpc?tab=doc): High level types/interfaces for rpc server/client implementations.
- [x] [msg](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/msg?tab=doc): High level types/interfaces for msg publisher/subscriber implementations.
- [x] [md](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/md?tab=doc): Meta data types.
- [x] [enc](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/enc?tab=doc): Data encoding/decoding type.
- [x] [natsrpc](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/natsrpc?tab=doc): Rpc server/client implementation using nats as transport.
- [x] [stanmsg](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/stanmsg?tab=doc): Auto reconnection/resubscription client for nats-streaming and msg publisher/subscriber implementation.
- [x] [binlogmsg](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/binlogmsg?tab=doc): 'Publish' (store) messages to MySQL8 tables then flush to downstream publisher using binlog notification.
- [x] [tracing](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/tracing?tab=doc): Opentracing middlewares.
- [x] [protoc-gen-nproto2](https://pkg.go.dev/github.com/huangjunwen/nproto/v2/protoc-gen-nproto2?tab=doc): Stub code generator for protobuf.
## Examples
See `examples` directory.