Skip to content

feat(sdk): expose raw command API across foreign clients#3691

Open
spetz wants to merge 12 commits into
masterfrom
sdk_raw_command
Open

feat(sdk): expose raw command API across foreign clients#3691
spetz wants to merge 12 commits into
masterfrom
sdk_raw_command

Conversation

@spetz

@spetz spetz commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Foreign SDK users could not send protocol commands without a typed
client API, which blocked applications from using new command codes
until every SDK added dedicated methods.

Expose code-and-payload methods across Python, PHP, C++, Node, Go,
C#, and Java while preserving each client's framing, authentication,
error mapping, and transport behavior. Reject session-control codes
before sending so typed login state remains consistent.

Add shared BDD coverage for known, unknown, and session-control
commands across every SDK runner. Bump each foreign SDK version for
the new public API.

@spetz spetz added the sdk Change related to sdk (client) API label Jul 17, 2026
@github-actions github-actions Bot added the S-waiting-on-review PR is waiting on a reviewer label Jul 17, 2026
@codecov

codecov Bot commented Jul 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 98.24561% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 74.15%. Comparing base (4a6f173) to head (f4d02c5).

Files with missing lines Patch % Lines
...ache/iggy/client/async/tcp/AsyncIggyTcpClient.java 88.88% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##             master    #3691      +/-   ##
============================================
- Coverage     74.31%   74.15%   -0.16%     
- Complexity      937      950      +13     
============================================
  Files          1303     1303              
  Lines        148600   148413     -187     
  Branches     124041   124009      -32     
============================================
- Hits         110427   110056     -371     
- Misses        34705    34812     +107     
- Partials       3468     3545      +77     
Components Coverage Δ
Rust Core 74.39% <ø> (-0.18%) ⬇️
Java SDK 62.64% <91.66%> (+0.20%) ⬆️
C# SDK 71.16% <100.00%> (-1.04%) ⬇️
Python SDK 92.27% <100.00%> (+0.11%) ⬆️
PHP SDK 84.29% <ø> (ø)
Node SDK 92.83% <100.00%> (+0.33%) ⬆️
Go SDK 43.08% <100.00%> (+0.21%) ⬆️
Files with missing lines Coverage Δ
foreign/csharp/Iggy_SDK/IggyClient/IIggyClient.cs 0.00% <ø> (ø)
...DK/IggyClient/Implementations/HttpMessageStream.cs 74.08% <100.00%> (-0.27%) ⬇️
...SDK/IggyClient/Implementations/TcpMessageStream.cs 77.73% <100.00%> (+0.12%) ⬆️
foreign/go/client/tcp/tcp_core.go 59.94% <100.00%> (+2.09%) ⬆️
...ache/iggy/client/blocking/http/IggyHttpClient.java 84.21% <100.00%> (+5.83%) ⬆️
...apache/iggy/client/blocking/tcp/IggyTcpClient.java 62.50% <100.00%> (+0.79%) ⬆️
...c/main/java/org/apache/iggy/serde/CommandCode.java 100.00% <100.00%> (ø)
foreign/node/src/wire/command-set.ts 100.00% <100.00%> (ø)
foreign/node/src/wire/command.code.ts 100.00% <100.00%> (+1.33%) ⬆️
foreign/php/src/client.rs 95.27% <ø> (ø)
... and 2 more

... and 50 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Comment thread raw-command-iggy-sdk.md Outdated
@github-actions github-actions Bot added S-waiting-on-author PR is waiting on author response and removed S-waiting-on-review PR is waiting on a reviewer labels Jul 17, 2026
@spetz
spetz force-pushed the sdk_raw_command branch from 917ebca to e84c91d Compare July 17, 2026 14:15
@spetz
spetz force-pushed the sdk_raw_command branch from e84c91d to 4dc369c Compare July 17, 2026 17:22
@spetz

spetz commented Jul 17, 2026

Copy link
Copy Markdown
Contributor Author

/ready

@github-actions github-actions Bot added S-waiting-on-review PR is waiting on a reviewer and removed S-waiting-on-author PR is waiting on author response labels Jul 17, 2026
@spetz
spetz requested a review from slbotbm July 17, 2026 17:41

@slbotbm slbotbm left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

other than one comments, looks alright

Comment thread foreign/cpp/tests/client/low_level_e2e.cpp Outdated
@github-actions github-actions Bot added S-waiting-on-author PR is waiting on author response and removed S-waiting-on-review PR is waiting on a reviewer labels Jul 19, 2026
@spetz
spetz requested a review from slbotbm July 19, 2026 17:45
slbotbm
slbotbm previously approved these changes Jul 19, 2026

@hubcio hubcio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

besides below findings i noticed that the rust sdk exposes this publicly as send_binary_request while every foreign sdk ships sendRawWithResponse (which matches the rust internal transport method). while everything is pre-release a rename either way is free; after release it's breaking.

Comment thread foreign/node/src/wire/command-set.ts Outdated
Comment thread foreign/go/client/tcp/tcp_core.go Outdated
Comment thread foreign/cpp/src/client.rs Outdated
Comment thread bdd/go/tests/suite_test.go
@spetz

spetz commented Jul 20, 2026

Copy link
Copy Markdown
Contributor Author

/ready

@github-actions github-actions Bot added S-waiting-on-review PR is waiting on a reviewer and removed S-waiting-on-author PR is waiting on author response labels Jul 20, 2026
numinnex
numinnex previously approved these changes Jul 20, 2026

@ryankert01 ryankert01 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lg, make sense to me.

slbotbm
slbotbm previously approved these changes Jul 20, 2026
@spetz
spetz dismissed stale reviews from slbotbm and numinnex via 35f1822 July 20, 2026 18:06
@spetz
spetz requested review from numinnex and slbotbm July 20, 2026 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review PR is waiting on a reviewer sdk Change related to sdk (client) API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants