These 73 commits are when the Protocol Buffers files have changed:
| Commit: | 3e26ed8 | |
|---|---|---|
| Author: | c9s | |
✨ feat(marketdata): add gRPC replay protocol and client Add pkg/marketdata/pb, a protocol for replaying historical market data between bbgo nodes, and the client source that consumes it. A separate protocol rather than an extension of bbgo.proto's MarketDataService. That service is a live subscription with no time range, its MarketData and Depth messages carry no per-event timestamp and no sequence, and it already has external users including a Python client. Retrofitting replay would either renumber fields or leave half of them meaningful in only one mode; this one is designed for the job from field number one, with a nanosecond event time and a sequence on every event and a bounded, resumable request. As a bonus, pkg/pb is untouched, so none of its generated files are regenerated and there is no unreviewable diff from a newer plugin. The protocol carries prev_sequence, which the venue supplies (Binance's "pu") and which is what actually proves no update was lost. A sequence is not a counter, so a receiver cannot check contiguity by incrementing it. grpcsource/convert.go is the sole translation boundary. The wire model uses strings for decimals and carries protobuf reflection state; the in-process model uses fixedpoint and is cheap to copy, so keeping them separate stops a proto change rippling into every consumer. Unlike a retrofit this protocol has no legacy senders, so a zero event_time_ns is rejected rather than guessed around — it would sort before every other event in a merge. Backpressure needs no policy here: the receive goroutine blocks in ChanCursor.Push, which stops it calling Recv, which closes the HTTP/2 window and stops the server. Tested against an in-process bufconn server with payloads large enough to exceed the default 64 KiB window, since small events complete regardless of the client's buffer. Also fixes a real bug in ChanCursor found by these tests: Next checked the error before reading the channel, so events the producer had already delivered were discarded when a failure arrived — silently truncating a stream immediately before the error that explained it. It now drains what arrived, then reports the failure. Makefile: the PROTOS wildcard and clean target now cover the new directory, and the pattern rule carries a note that install-grpc-tools must run first, because its pinned protoc-gen-go v1.26 is what the committed files were generated with. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SiABKm1gC5XWSF2Ex57ScX
| Commit: | cb51352 | |
|---|---|---|
| Author: | c9s | |
grpc: implement cancel order
The documentation is generated from this commit.
| Commit: | 3305488 | |
|---|---|---|
| Author: | c9s | |
grpc: implement cancel order
The documentation is generated from this commit.
| Commit: | a738314 | |
|---|---|---|
| Author: | c9s | |
grpc: fix price,quantity types
| Commit: | 9611f47 | |
|---|---|---|
| Author: | c9s | |
grpc: fix price,quantity types
| Commit: | f15f4e1 | |
|---|---|---|
| Author: | c9s | |
grpc: add trading service
| Commit: | b39887b | |
|---|---|---|
| Author: | c9s | |
grpc: add trading service
| Commit: | 339c72a | |
|---|---|---|
| Author: | c9s | |
grpc: translate private trade and balances
| Commit: | b35640f | |
|---|---|---|
| Author: | c9s | |
grpc: translate private trade and balances
| Commit: | a93a915 | |
|---|---|---|
| Author: | c9s | |
grpc: convert order
| Commit: | 000cc55 | |
|---|---|---|
| Author: | c9s | |
grpc: convert order
| Commit: | 8e81716 | |
|---|---|---|
| Author: | c9s | |
grpc: separate market data message and user data message
| Commit: | 45e827b | |
|---|---|---|
| Author: | c9s | |
grpc: separate market data message and user data message
| Commit: | 606a7b3 | |
|---|---|---|
| Author: | c9s | |
convert: trade price/volume to string
| Commit: | 02824f3 | |
|---|---|---|
| Author: | c9s | |
convert: trade price/volume to string
| Commit: | d9617b5 | |
|---|---|---|
| Author: | c9s | |
grpc: convert kline prices to string
| Commit: | 103d630 | |
|---|---|---|
| Author: | c9s | |
grpc: convert kline prices to string
| Commit: | 12ce854 | |
|---|---|---|
| Author: | c9s | |
| Committer: | c9s | |
grpc: integrate market trade
| Commit: | 69a32bc | |
|---|---|---|
| Author: | c9s | |
| Committer: | c9s | |
grpc: integrate market trade
| Commit: | d836126 | |
|---|---|---|
| Author: | なるみ | |
grpc: add start/end time to fix queryklines
| Commit: | cc7aa4c | |
|---|---|---|
| Author: | なるみ | |
grpc: add start/end time to fix queryklines
| Commit: | fb5703b | |
|---|---|---|
| Author: | c9s | |
| Committer: | c9s | |
grpc: implement book stream
| Commit: | 46cf220 | |
|---|---|---|
| Author: | c9s | |
| Committer: | c9s | |
implement market data subscription
| Commit: | a4cc8f9 | |
|---|---|---|
| Author: | c9s | |
| Committer: | c9s | |
grpc: implement book stream
| Commit: | c845c76 | |
|---|---|---|
| Author: | c9s | |
| Committer: | c9s | |
implement market data subscription
| Commit: | 4cd646e | |
|---|---|---|
| Author: | Yo-An Lin | |
| Committer: | GitHub | |
feature: basic grpc server (#514)
| Commit: | a7ea66f | |
|---|---|---|
| Author: | Yo-An Lin | |
| Committer: | GitHub | |
feature: basic grpc server (#514)
| Commit: | d797259 | |
|---|---|---|
| Author: | c9s | |
add a basic grpc service
| Commit: | 43abfd1 | |
|---|---|---|
| Author: | c9s | |
add a basic grpc service
| Commit: | 4b35d66 | |
|---|---|---|
| Author: | c9s | |
improve proto spec
| Commit: | 3f10e64 | |
|---|---|---|
| Author: | c9s | |
improve proto spec
| Commit: | acaa68c | |
|---|---|---|
| Author: | c9s | |
pb: move ERROR enum to 99
| Commit: | 64bce5e | |
|---|---|---|
| Author: | c9s | |
pb: move ERROR enum to 99
| Commit: | 4fca4d9 | |
|---|---|---|
| Author: | c9s | |
rebuild proto files and import google.golang.org/protobuf
| Commit: | 32106ce | |
|---|---|---|
| Author: | c9s | |
rebuild proto files and import google.golang.org/protobuf
| Commit: | fb6834a | |
|---|---|---|
| Author: | c9s | |
fix grpc typo
| Commit: | 20179fb | |
|---|---|---|
| Author: | c9s | |
fix grpc typo
| Commit: | 034a86c | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add grpc client
| Commit: | 8c726ec | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add grpc client
| Commit: | dedfdc5 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Remove symbol from balance
| Commit: | c906728 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Remove symbol from balance
| Commit: | b6493ad | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Change id type
| Commit: | 1ac13ff | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Change id type
| Commit: | 8522c0d | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add exchange field to QueryOrderRequest
| Commit: | e7693f4 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add exchange field to QueryOrderRequest
| Commit: | 37fbe72 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add Error message
| Commit: | 9c358de | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add Error message
| Commit: | 3aeae99 | |
|---|---|---|
| Author: | なるみ | |
Add SubcribeUserData
| Commit: | b3bb88a | |
|---|---|---|
| Author: | なるみ | |
Add SubcribeUserData
| Commit: | 36fd5d6 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add exchange and symbol to Ticker
| Commit: | af7eeed | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add exchange and symbol to Ticker
| Commit: | 6b10d11 | |
|---|---|---|
| Author: | なるみ | |
Merge SuccessResponse and SubscribeResponse
| Commit: | f26c699 | |
|---|---|---|
| Author: | なるみ | |
Merge SuccessResponse and SubscribeResponse
| Commit: | 9fd4074 | |
|---|---|---|
| Author: | なるみ | |
Add Depth message for bids and asks
| Commit: | bbc1cf0 | |
|---|---|---|
| Author: | なるみ | |
Add Depth message for bids and asks
| Commit: | 32acec5 | |
|---|---|---|
| Author: | なるみ | |
Put exchange field in the order and trade message
| Commit: | c3d9baa | |
|---|---|---|
| Author: | なるみ | |
Put exchange field in the order and trade message
| Commit: | c1b7059 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add SubmitOrder, rename variables and fix typo
| Commit: | a31fecb | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add SubmitOrder, rename variables and fix typo
| Commit: | f2bca1d | |
|---|---|---|
| Author: | なるみ | |
add QueryKLines
| Commit: | 3afdde0 | |
|---|---|---|
| Author: | なるみ | |
add QueryKLines
| Commit: | 7a7627e | |
|---|---|---|
| Author: | なるみ | |
update proto
| Commit: | d5a98ff | |
|---|---|---|
| Author: | なるみ | |
update proto
| Commit: | 4fb8881 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Fix package path
| Commit: | dcfbbad | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Fix package path
| Commit: | 72bcdaa | |
|---|---|---|
| Author: | なるみ | |
Move pkg/proto to pkg/pb
| Commit: | fae0dc6 | |
|---|---|---|
| Author: | なるみ | |
Move pkg/proto to pkg/pb
| Commit: | 328c507 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Update go generated code
| Commit: | 057e7ca | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Update go generated code
| Commit: | 3fe6fbf | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add Trade message and support streaming
| Commit: | fbe8de4 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Add Trade message and support streaming
| Commit: | 3070420 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Initial commit of protobuf
| Commit: | 16c4191 | |
|---|---|---|
| Author: | なるみ | |
| Committer: | なるみ | |
Initial commit of protobuf