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

gRPC #22655

Closed
DartBot opened this issue Mar 4, 2015 · 26 comments
Closed

gRPC #22655

DartBot opened this issue Mar 4, 2015 · 26 comments
Labels
area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams. type-enhancement A request for a change that isn't a bug

Comments

@DartBot
Copy link

DartBot commented Mar 4, 2015

This issue was originally filed by @zoechi


see also

@floitschG
Copy link
Contributor

I copied the bug to fletch's issue tracker:
dart-archive/sdk#13


Added Invalid label.

@DartBot
Copy link
Author

DartBot commented Mar 4, 2015

This comment was originally written by @Emasoft


I agree. It would be VERY helpful to have a Dart native implementation of gRPC, especially if it is included in the default framework, to allow an easier interoperability between Dart apps.

It was disappointing that Google didn't include Dart support in its gRPC library, as you can see from here: http://www.grpc.io

But that shortcoming can be attributed to the fact that Dart still lacks an HTTP/2 stack implementation.

I've opened an issue for addressing the lack of HTTP/2 support here: https://code.google.com/p/dart/issues/detail?id=22661

@kasperl
Copy link

kasperl commented Mar 5, 2015

Why was this copied to fletch's issue tracker?

@sgjesse
Copy link
Contributor

sgjesse commented Mar 5, 2015

A gRPC implementation for Dart is being planned and will be based on the the Dart HTTP/2 stack currently being worked on.

The gRPC implementation for some languages build on the gRPC C-library, but with the native extension model in Dart taking that route will make the package difficult to distribute, and an accessible HTTP/2 stack will still be missing.


Set owner to @mkustermann.
Added Area-Pkg, Triaged labels.
Marked this as being blocked by #21504.

@DartBot DartBot added Type-Enhancement area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams. labels Mar 5, 2015
@teodor-pripoae
Copy link

Hi

Any status on the gRPC implementation ? I can see that HTTP/2 support was implemented in #21504.

Thanks,
Teodor

@kevmoo kevmoo added type-enhancement A request for a change that isn't a bug and removed triaged labels Mar 1, 2016
@idcmp
Copy link

idcmp commented Aug 16, 2016

According to dart-lang/http2#7 - this now exists as a proof of concept gRPC: https://github.com/mkustermann/grpc-dart-poc (I haven't tested it, just helping future people follow the path of links).

@mkustermann
Copy link
Member

To give an update on this: The Dart team will be actively working on a gRPC implementation for Dart during the coming months, most likely starting early Q1.

@Scorpiion
Copy link

Great news! Looking forward to test it out later on. 👍

@nemequ
Copy link

nemequ commented Nov 29, 2016

To give an update on this: The Dart team will be actively working on a gRPC implementation for Dart during the coming months, most likely starting early Q1.

Any idea whether that will include protobuf 3 support? IIUC it's technically optional, but AFAICT most gRPC services require it…

Also, what about gRPC-Web?

@mkustermann
Copy link
Member

Any idea whether that will include protobuf 3 support?

Very likely, because as you mention, a lot of APIs will use v3 proto files (e.g. this).

Also, what about gRPC-Web?

I cannot give you an answer here.

@kasperl kasperl assigned jakobr-google and unassigned mkustermann Jan 3, 2017
@hdcos
Copy link

hdcos commented Mar 24, 2017

Hello, we are migrating a lot of our codebase with a grpc micro-services architecture. Could you give me an update on the grpc implementation for dart please? 😄

@jakobr-google
Copy link
Contributor

I'll be working on this starting in Q2. We have an implementation by @mkustermann in dart-lang/appengine that I plan to use as the basis for the generic implementation.

@wstrange
Copy link

wstrange commented May 3, 2017

Any updates on grpc support?

@jakobr-google
Copy link
Contributor

Nothing concrete yet, but I'm working on it.

@olostan
Copy link

olostan commented May 22, 2017

@jakobr-google please drop here a comment where you'll have anything to test

@jakobr-google
Copy link
Contributor

Shouldn't be long now. I have a basic implementation of the client and server runtime in review, which should be posted soon. No guarantees about correctness or interoperability yet, but once that's landed it'll be easier to iterate.

@jakobr-google
Copy link
Contributor

First PR has been merged into https://github.com/dart-lang/grpc-dart. Don't expect to be able to use what's there out of the box just yet, though.

The current state is that basic gRPC call functionality works, but "advanced" features like custom metadata, deadlines, and cancellation do not, and I have only done extremely basic interoperability tests against the Go implementation.

Oh, and there's no protoc plugin to generate the gRPC stubs yet.

I plan to file issues for the things I'm working on, so you should be able to follow along on GitHub.

@wstrange
Copy link

wstrange commented Jun 29, 2017

@jakobr-google when you say there is no protoc plugin, is this specifically for the grpc rpc calls?

Update: Answering my own question: From looking at the sample it looks like protobuf 3 is being generated (cool!) but the rpc stub generation is not quite there yet. Very nice !

@jakobr-google
Copy link
Contributor

Yep, specifically for the gRPC stubs. The protobuf messages are being generated.

We do generate code for proto3, but the proto3 semantics is not fully implemented - that's being tracked in https://github.com/dart-lang/dart-protoc-plugin/projects/1 (and various issues in dart-lang/protobuf).

@jakobr-google
Copy link
Contributor

I really should remember to update this thread more often, but tl;dr: Dart gRPC v0.1.0 is on pub.

See README.md for the route_guide example for instructions on how to generate stubs from protobuf definitions (you'll need the latest version of protoc_plugin).

It's still early days, but the core gRPC implementation Works For Me(tm). When you find issues, please file them!

Stuff that's still being worked on is things like easy authentication to Cloud, etc. Right now, you have to manually add authentication headers, but if you get things right, it does work (For Me, at least).

@stevenroose
Copy link

stevenroose commented Nov 3, 2017 via email

@srawlins
Copy link
Member

Official support has been announced, woohoo!

@taisph
Copy link

taisph commented Jun 22, 2018

It is great news but support is only for Flutter and VM/Server and not web. This issue was about the web support.

@srawlins
Copy link
Member

My bad! I can keep it open.

@srawlins srawlins reopened this Jun 22, 2018
@zoechi
Copy link
Contributor

zoechi commented Jun 22, 2018

Actually I don't think this is about gRPC web. It was mentioned in a comment.
I think grpc/grpc-dart#43 covers that and there is no need to keep 2 open for the same thing.

@srawlins
Copy link
Member

Woohoo!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-pkg Used for miscellaneous pkg/ packages not associated with specific area- teams. type-enhancement A request for a change that isn't a bug
Projects
None yet
Development

No branches or pull requests