saie-ch opened a new pull request, #3790:
URL: https://github.com/apache/iggy/pull/3790
Which issue does this PR address?
Closes #2835
Rationale:
The Python SDK only exposed TCP via IggyClient(). QUIC, HTTP, and
WebSocket were reachable only through the untested
from_connection_string() path — no constructors, no docs, no examples, no
tests.
What changed?
Added IggyClient.tcp/quic/http/websocket() classmethods mirroring the Rust
builder's with_tcp/with_quic/with_http/with_websocket(). Fixed
a QUIC bug along the way: quinn::Endpoint::client needs an active Tokio
runtime, which a synchronous Python call site doesn't have — both
quic() and from_connection_string() now enter it explicitly. Added
integration tests, examples, and CI wiring for all three
previously-untested transports.
Local Execution:
- Passed
- Pre-commit hooks ran (prek run) — ruff, pyrefly, cargo fmt,
markdownlint, typos all clean. cargo clippy -D warnings run manually against
foreign/python (excluded from the root workspace, so the repo's pre-push
hook doesn't reach it). Built server + extension locally, ran
full pytest suite (337 passed, only pre-existing Docker-dependent TLS
tests skipped for lack of a daemon), and manually exercised all
three new example pairs end-to-end.
AI Usage:
Claude Code (Sonnet).
Built iggy-server and the Python extension locally, ran the full pytest
suite against a live 4-transport server (337 passed), and manually ran all
three new example pairs (QUIC/HTTP/WebSocket producer+consumer) end-to-end.
Also ran cargo clippy -D warnings, cargo fmt, ruff check/format, pyrefly, and
markdownlint, and confirmed the diff stayed scoped to only foreign/python,
examples/python, and CI config with nothing touching core/sdk or other SDKs
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]