/claim #390

This PR turns the existing kyo-grpc skeleton into an executable MVP path for unary calls (in-process), so the module no longer stops at stubs only.

What changed

  • GrpcServer
    • Fixed start() to return a real ServerBinding with host:port and running-state lifecycle hooks.
  • GrpcClient
    • Added registerUnary to bind a method path to a local unary handler.
    • Implemented Call.run for registered handlers.
    • Added explicit unsupported error for unregistered/transport-backed calls (instead of placeholder ???).
  • Tests
    • Added unary flow test proving request/response execution for registered method paths.

Why this is valuable

Issue #390 has been blocked by broad scope and repeated non-executable drafts. This PR intentionally lands a narrow, testable slice that compiles logically and provides a concrete runtime seam for subsequent transport integration.

Follow-ups (out of scope for this PR)

  • Netty/grpc-java transport-backed client/server wiring
  • streaming support
  • full ScalaPB-generated service/client plumbing

If preferred, I can open the next PR directly on transport wiring using this unary seam as the integration point.

Claim

Total prize pool $1,000
Total paid $0
Status Pending
Submitted April 01, 2026
Last updated April 01, 2026

Contributors

CU

CuboYe

@CuboYe

100%

Sponsors

KY

Kyo

@getkyo

$500
KA

Kaizen Solutions

@kaizen-solutions

$250
CA

Calvin Lee Fernandes

@calvinlfer

$250