Fortyrunner
Fortyrunner

Reputation: 12782

Is there a production quality Google Protocol Buffers implementation in .NET

The title says it!

I know that Jon Skeet was working on an implementation and I heard an interview (Dot net Rocks?) where he implied it was w.i.p.

The latest page just shows a version number. So, is it now production ready?

thanks

Upvotes: 5

Views: 2426

Answers (3)

AnthonyLambert
AnthonyLambert

Reputation: 8830

Doh.... John Skeet beat me to it!

You need to look at the Other languages implementations page on the protobuf google code page...

There are 3 .net implementations.

dotnet-protobufs by Jon Skeets

protobuf-net by Marc Gravell

protosharp

The first one is a C# clone of the original protobuf which only supported C++, Java and Python.

The second has been greatly extended to fit in more with C# and can even be used in the place of the native remoting. I would use this if you are not doing cross platform work.

When I looked at the last one didn't see any good reason to use it over the first two.

Upvotes: 3

Jon Skeet
Jon Skeet

Reputation: 1500514

There are two main implementations of Protocol Buffers:

  • Mine (mostly a port of the Java code)
  • Marc Gravell's ProtoBuf-Net (more WCF friendly, ground-up reimplementation)

I know Marc was in the middle of a major refactoring a little while ago; I don't know if he still is.

My own port works as far as I'm aware (bar a bug in packed type sizing which was reported a couple of days ago) but lacks some polish around the generation side of things. Some users are interested in Silverlight compatibility which I've been working towards but haven't tried yet. (Basically there are a few methods missing in Silverlight which I was using; I think I may have migrated all of them now - I need to check.)

I don't know whether either implementation is in production use for any systems, but I'll be happy to try to fix any bugs you raise. Note that I'm not intending to implement the "lite" PBs which appeared in the main 2.2 code; they would make the already-complicated inheritance nastier. I will be introducing an extra option to allow the mode (speed/size optimization) to be specified separately for C# soon.

Upvotes: 11

Dirk is no longer here
Dirk is no longer here

Reputation: 368231

Did you see this one protobuf-net on Google Code too?

Upvotes: 1

Related Questions