square / square/wire

A way to make Wire work with Reactive-gRPC?

Open
#1,879 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Kotlin
Stars
4.4k
Forks
627
Avg merge
3d 15m
Merged PRs (30d)
20

Description

Hey,
I'm wondering if there's a way to make Wire work with RxGrpc - https://github.com/salesforce/reactive-grpc?
Not sure where to ask it better, here or there, but I'll start here :)

So RxGrpc generates special gRPC service stubs that are exposing Rx streams.
Currently Wire generates its own gRPC stubs for services, and I tried to avoid that by moving service proto files to a separate Gradle module, where only RxGrpc will be applied.

This doesn't seem to be possible, because RxGrpc plugin requires proto model files to be present in the path to properly import them in Service proto files, and at the same time it tries to generate Java classes based on Proto models, but I want to avoid that, because I'd like to use those that Wire generated.

Is there a way to properly configure it somehow, or is it something that either Wire or RxGrpc plugins have to support explicitly?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the Wire and Reactive-gRPC Gradle plugin configuration, focusing on proto model imports and generated Java classes. Determine whether Reactive-gRPC can use Wire-generated classes or whether explicit support from either plugin is required.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, java
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.