Code Monkey home page Code Monkey logo

Comments (13)

nemequ avatar nemequ commented on May 18, 2024 7

It's worth noting that this blocks proper gRPC support.

from protobuf.dart.

jakobr-google avatar jakobr-google commented on May 18, 2024 7

Sure! The current status is that proto3 support mostly works, since the wire format is backwards compatible, but we have a bit of work to do before we can claim full support.

So, gRPC services defined in a proto3 document should work, but with some caveats:

  • The JSON representation doesn't match the proto3 spec. There's work in progress to fix this.
  • Proto3 fields don't have special support, specifically:
    • Maps show up a lists of entries instead of a proper map in Dart
    • OneOf fields don't properly clear the other fields when a new one is set and we don't yet have an accessor to show which field is set
    • Any fields will probably just show up as a blob.

Apart from that, compiling a proto3 definition to Dart code should work, including gRPC services. If you're not using any of the above, you should be fine. If you are, you'll need to work around the missing support for now.

Full proto3 support is coming up.

from protobuf.dart.

Brahmasmi avatar Brahmasmi commented on May 18, 2024 3

Danke @jakobr-google for the detailed update. It feels great to see the possibility of a common gRPC Dart communication stack.

Would it be possible for you to share an approximate timeline for the full proto3 support? Q1/2/3/4 2018?

Thanks.

from protobuf.dart.

skybrian avatar skybrian commented on May 18, 2024

No concrete plans. (Certainly nice to have, but nobody is working on it.)

from protobuf.dart.

skybrian avatar skybrian commented on May 18, 2024

An intermediate step might be to make sure that we can interop with proto 3. (Apparently it should be forward/backward compatible.)

from protobuf.dart.

Pacane avatar Pacane commented on May 18, 2024

Well that's not the case right now. I tried compiling some proto3 stuff with this, but nope!

from protobuf.dart.

Pacane avatar Pacane commented on May 18, 2024

Also, this is going to be a blocker to update anything in this lib I believe.

from protobuf.dart.

Brahmasmi avatar Brahmasmi commented on May 18, 2024

Would it be possible to please share the current status of support for Protobuf 3?

The intended use case is to use grpc-dart in a flutter app for the communication stack. This would help replace Java and Swift grpc communication stacks with a common Dart one.

Thanks.

@jakobr-google @mit-mit @skybrian

from protobuf.dart.

sigurdm avatar sigurdm commented on May 18, 2024

Any fields are now supported with a pack and unpack method!

from protobuf.dart.

eredo avatar eredo commented on May 18, 2024

The JSON representation doesn't match the proto3 spec. There's work in progress to fix this.

Any progress on this?

from protobuf.dart.

sigurdm avatar sigurdm commented on May 18, 2024

The JSON representation doesn't match the proto3 spec. There's work in progress to fix this.

Any progress on this?

This is being worked on here: #83
We are going to support both json with name-keys and with numeric keys

from protobuf.dart.

Brahmasmi avatar Brahmasmi commented on May 18, 2024

Tak Sigurd for the Any support.

Looking forward to the Map and OneOf i.e. complete Protobuf 3 support.

Dhanyavaad.

from protobuf.dart.

szakarias avatar szakarias commented on May 18, 2024

Map and Oneof are now both supported.

from protobuf.dart.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.