Skip to content

feat(sdk): gRPC streaming download fan-out + Swift core gRPC client#197

Merged
Nic-dorman merged 1 commit into
mainfrom
v2-499-grpc-sdk-fanout
Jun 18, 2026
Merged

feat(sdk): gRPC streaming download fan-out + Swift core gRPC client#197
Nic-dorman merged 1 commit into
mainfrom
v2-499-grpc-sdk-fanout

Conversation

@Nic-dorman

Copy link
Copy Markdown
Collaborator

Stacked on #196 (daemon wiring + REST SDK fan-out). Review/merge that first; this branch retargets to main automatically once it lands.

What

The gRPC counterpart to the REST streaming fan-out in #196 — adds data_stream / data_stream_public over gRPC to every SDK that ships a gRPC client:

  • gRPC streaming fan-out: go, py (sync + async), rust, csharp, java, kotlin, dart, ruby, cpp, elixir, swift. Proto regenerated with the new Stream RPC; idiomatic streaming return type per language. antd-js is REST-only (no gRPC client), so N/A.
  • Swift core gRPC client: replaces the 15 notImplemented() stubs (health / data / chunk / file get-put-cost + the two streaming methods) with a real implementation; regenerated data.{pb,grpc}.swift; adds GrpcCoreTests.
  • Ruby gRPC error-mapping fix: grpc_call constructed AntdError with positional/swapped args, so unmapped gRPC statuses raised ArgumentError instead of a mapped AntdError. Corrected, plus aligned tests and the no-gem fallback shell.

Validation

  • Mock-server gRPC round-trips green on Windows across the statically- and dynamically-typed SDKs.
  • dev2 (Linux): full Swift suite 57/57; Ruby 43 gRPC + 38 REST green; cpp / elixir green.
  • antd-rust compiles the canonical proto (with the new Stream RPC, supplied by the feat(antd): data streaming download — daemon wiring + REST SDK fan-out #196 base) via build.rs and passes cargo fmt --check.

Notes

🤖 Generated with Claude Code

@Nic-dorman Nic-dorman force-pushed the v2-499-grpc-sdk-fanout branch 2 times, most recently from 02537b9 to c83d531 Compare June 11, 2026 14:46
@Nic-dorman Nic-dorman changed the base branch from nic/v2-289-antd-stream-wiring to main June 18, 2026 14:02
Adds streaming-download progress across all SDKs and the daemon:
- Daemon: gRPC oneof progress frames + REST NDJSON opt-in (Accept:
  application/x-ndjson), plus a leading byte-total meta frame.
- SDKs: *_with_progress streaming methods returning a DownloadFrame
  {Meta|Data|Progress} across the gRPC clients (10 SDKs) and REST (antd-js
  + all REST clients); existing byte-stream methods unchanged (additive).
- Swift gRPC core client completion.

Both transports verified end-to-end against a live daemon: smoothly-advancing
fetch progress (resolved -> fetching N/total) + byte-total denominator +
byte-for-byte reassembly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Nic-dorman Nic-dorman force-pushed the v2-499-grpc-sdk-fanout branch from 0bf0520 to ca35076 Compare June 18, 2026 14:05
@Nic-dorman Nic-dorman merged commit 82edacf into main Jun 18, 2026
7 checks passed
@Nic-dorman Nic-dorman deleted the v2-499-grpc-sdk-fanout branch June 18, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant