Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add gRPC Web support #571

Open
everflux opened this issue May 12, 2020 · 7 comments
Open

Add gRPC Web support #571

everflux opened this issue May 12, 2020 · 7 comments
Labels
area/traefik kind/enhancement a new or improved feature.

Comments

@everflux
Copy link

Feature Request

Proposal

Support gRPC Web to HTTP translation as part of maesh/traefik. Currently an additional envoy proxy instance is required.
This is related to traefik/traefik#4210

Background

For web clients a translation between http-grpc and grpc is required. Since most frameworks do not support this as in-process an external proxy must provide the protocol translation.
See https://github.com/grpc/grpc-web

Workarounds

Use envoy in addition to maesh.

@dtomcej
Copy link
Contributor

dtomcej commented May 12, 2020

I'm curious why you would choose to use gRPC-Web as a protocol for inter-service communication.

It seems like gRPC-Web is designed to solve some issues that browsers face, and provide external-facing features.

Wouldn't just using base gRPC requests be simpler in a clustered environment?

@everflux
Copy link
Author

everflux commented May 12, 2020

You are right that gRPC is for inter-service communication, but I don't want to manually expose a different protocol (http/json). That is what gRPC-Web solves, but there needs to be a translating proxy. This could be at the edge with traefik or as part of the mesh in maesh. (So I thought)

The reason for translating as part of the mesh is that for load balancing of the long lived http2-stream the protocol needs to be converted to discrete requests anyway.

@dtomcej
Copy link
Contributor

dtomcej commented May 12, 2020

Ah that makes sense. Thx for the explanation.

@dtomcej dtomcej added area/traefik kind/enhancement a new or improved feature. labels May 13, 2020
@einali
Copy link

einali commented Aug 21, 2020

Is there any update for this feature? What is time schedule for implementing it?

@jspdown
Copy link
Contributor

jspdown commented Aug 24, 2020

@einali Thanks for you interest in Maesh.

As Maesh depends on Traefik we can't give you any ETA until this feature gets implemented on their side.

@zs-dima
Copy link

zs-dima commented Nov 14, 2022

@jspdown any update or related issue are welcome

@jspdown
Copy link
Contributor

jspdown commented Nov 15, 2022

@zs-dima the GrpcWeb middleware has been merged very recently on Traefik traefik/traefik#9451. Once this get released we will be able to unblock this issue.

In the meantime, if anyone wants to start working on this, I would be happy to help 😃

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/traefik kind/enhancement a new or improved feature.
Projects
None yet
Development

No branches or pull requests

6 participants