Skip to content

feat(grpc): Add gRPC routing and service support - #32

Merged
mpenet merged 6 commits into
mainfrom
grpc
Mar 15, 2026
Merged

mpenet merged 6 commits into
mainfrom
grpc

Conversation

@mpenet

@mpenet mpenet commented Mar 15, 2026

Copy link
Copy Markdown
Owner

Introduce Helidon gRPC integration: add s-exp.hirundo.grpc.routing and s-exp.hirundo.grpc.service implementations, wire :grpc-services server option, and require grpc routing in the main namespace.

mpenet added 5 commits March 15, 2026 17:38
Introduce Helidon gRPC integration: add s-exp.hirundo.grpc.routing
and s-exp.hirundo.grpc.service implementations, wire :grpc-services
server option, and require grpc routing in the main
namespace. Update deps.edn (helidon-webserver-grpc and
grpc-netty-shaded for tests). Add test proto, generated Java classes
and comprehensive gRPC tests.
Add a tools.build task and deps alias to compile Java test sources
(test/java -> test/classes) and invoke it in the GitHub Actions test
workflow before running Clojure tests.
Add s-exp.hirundo.grpc with send!, complete! and error! wrappers for
io.grpc.stub.StreamObserver. Update README with a gRPC section and
examples, and adjust tests to use the new helpers and require the
grpc namespace.
Provide a function that builds a Java StreamObserver from optional
:on-next, :on-error and :on-completed callbacks. Update README and
tests to use the helper, simplifying bidi handler implementations
@mpenet
mpenet marked this pull request as ready for review March 15, 2026 17:00
Introduce unary-async-handler, server-stream-async-handler,
client-stream-async-handler and bidi-async-handler that expose
core.async channels for request/response streaming. Handlers support
configurable channel factories (:in-ch-fn, :out-ch-fn). Update
README with usage examples and add tests for unary, server-stream
and bidi scenarios.  Also require clojure.core.async in the grpc
namespace and apply minor formatting tweaks.
@mpenet
mpenet merged commit 0e49323 into main Mar 15, 2026
2 checks passed
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