Skip to content

Pekko server and client transports - #221

Merged
kubinio123 merged 6 commits into
masterfrom
150-pekko-streaming-client-and-server-transport
Aug 18, 2026
Merged

Pekko server and client transports#221
kubinio123 merged 6 commits into
masterfrom
150-pekko-streaming-client-and-server-transport

Conversation

@kubinio123

Copy link
Copy Markdown
Collaborator

No description provided.

@kubinio123 kubinio123 linked an issue Aug 18, 2026 that may be closed by this pull request
@kubinio123
kubinio123 requested a balanced review from Copilot August 18, 2026 11:07

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds Pekko (Future-based) streaming transports for both server and client, updates docs to mention Pekko, and aligns existing streaming http transports’ Tapir stream types.

Changes:

  • Introduce Pekko server transports (HTTP SSE + STDIO) and associated test suites.
  • Introduce Pekko client transports (HTTP streaming + STDIO) including internal state/pending-request management and tests.
  • Update docs/README and build to include Pekko modules; normalize sseBody type parameters in ZIO/Ox transports.

Reviewed changes

Copilot reviewed 23 out of 24 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
server-streaming/server-zio/src/main/scala/chimp/server/zio/ZioServerHttpTransport.scala Align Tapir StreamBodyIO binary stream type with streams.BinaryStream.
server-streaming/server-ox/src/main/scala/chimp/server/ox/OxServerHttpTransport.scala Align Tapir StreamBodyIO binary stream type with streams.BinaryStream; cleanup import.
server-streaming/server-pekko/src/main/scala/chimp/server/pekko/PekkoServerHttpTransport.scala New Pekko HTTP SSE server transport implementation.
server-streaming/server-pekko/src/main/scala/chimp/server/pekko/PekkoServerStdioTransport.scala New Pekko STDIO server transport implementation.
server-streaming/server-pekko/src/main/scala/chimp/server/pekko/PekkoOutbound.scala Shared outbound queue offering utility for Pekko server transports.
server-streaming/server-pekko/src/test/scala/chimp/server/pekko/PekkoToFuture.scala Test integration utilities for Pekko-based server tests.
server-streaming/server-pekko/src/test/scala/chimp/server/pekko/PekkoMcpServerStdioSpec.scala Server STDIO transport tests for Pekko.
server-streaming/server-pekko/src/test/scala/chimp/server/pekko/PekkoMcpServerHttpSpec.scala Server HTTP transport tests for Pekko.
client-streaming/client-pekko/src/main/scala/chimp/client/transport/pekko/PekkoClientHttpTransport.scala New Pekko HTTP streaming client transport (SSE + reconnect).
client-streaming/client-pekko/src/main/scala/chimp/client/transport/pekko/PekkoClientStdioTransport.scala New Pekko STDIO client transport via subprocess.
client-streaming/client-pekko/src/main/scala/chimp/client/transport/pekko/internal/StateActor.scala Internal typed actor wrapper to serialize state access.
client-streaming/client-pekko/src/main/scala/chimp/client/transport/pekko/internal/PekkoPendingRequests.scala Pending request registry for Future-based Pekko client.
client-streaming/client-pekko/src/test/scala/chimp/client/transport/pekko/internal/StateActorSpec.scala Tests for StateActor behavior and lifecycle.
client-streaming/client-pekko/src/test/scala/chimp/client/transport/pekko/PekkoToFuture.scala Test integration utilities for Pekko-based client tests.
client-streaming/client-pekko/src/test/scala/chimp/client/transport/pekko/PekkoMcpClientStdioIntegrationSpec.scala Client STDIO integration tests for Pekko.
client-streaming/client-pekko/src/test/scala/chimp/client/transport/pekko/PekkoMcpClientHttpIntegrationSpec.scala Client HTTP streaming integration tests for Pekko.
docs/server/transport.md Document Pekko transports and add security guidance for HTTP endpoints.
docs/server/quickstart.md Add Pekko server dependency snippet.
docs/server/examples.md Add Pekko server examples (HTTP streaming + STDIO).
docs/client/transport.md Document Pekko client transports.
docs/client/quickstart.md Add Pekko client dependency snippet.
docs/client/examples.md Add Pekko bidirectional client example.
build.sbt Add Pekko modules and dependencies to the build.
README.md Update supported integrations list to include Pekko.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.


override def toFuture[A](fa: Future[A]): Future[A] = fa

override def sleep(millis: Long): Future[Unit] = after(millis.millis)(Future.unit)

@kubinio123 kubinio123 Aug 18, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

This compiles

@kubinio123

Copy link
Copy Markdown
Collaborator Author

For the comments on truncation, as a SDK we should probably inherit from http layer and implement and impose for STDIO message size thresholds #223.

@kubinio123
kubinio123 merged commit d5eed1c into master Aug 18, 2026
8 checks passed
@kubinio123
kubinio123 deleted the 150-pekko-streaming-client-and-server-transport branch August 18, 2026 12:06
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.

Pekko streaming client and server transport

2 participants