experimenting with the wire format and have created a basic client implementation if it is of interest to any, or worth a PR, it doesn’t use sessions or register serialization types in ctor and I’m including type data in the serialization options for a slightly larger payload but … it seems to work!!
Bascially gives you protobuf esq fast binary serialization without the attribute requirements of protobuf and has some version tolerance. Could probably wire up surrogates into the client for custom serialization/deserialization of any troublesome types
Yeah definitely if it’s as fast as ProtoBuf but doesn’t require attributes it would be more useful for POCO DTOs which is protobuf’s major shortcoming.
How is this progressing? I would love to incorporte this is our in-the-works project that uses a backend server and a frontend website. For obvious reasons I would like to keep the overhead of their communication to a minimum.
Tried Wire and MsgPack, but it seems my superduper DTOs are not being (de)serialized properly. This is on the 4.5.4 version. I will pull the source and see if this is at all possible. Keep you posted.
I have an example for Wire failing. It’s a client + server with a models assembly.
The reason MsgPack was not working, was due to the fact that the response was sent as json. The reason for this is that the Feature.MsgPack was not included in the supported fetures in AppHost. I would opt for throwing an exception when this is the case (it took me 3 days to finally find this).
Also, there is no way to add Feature.Wire (it’s not in the enum)
Where can I put the sample for you to check out? (I believe the error is Wire related, not ServiceStack) Send me an e-mail (see profile) and I will send you a zip.
What serialization capabilities each format supports is typically opaque to ServiceStack where we’re very limited in what we are able to do (i.e. where it’s possible we could change their default configuration), otherwise any changes/issues would need to be submitted to the Wire project.
So I’d see if the serialization/deserialization works with just the Wire serializer, if it is submit an issue with the Wire project. The easiest way to share any code is to just put it on Github.
Not sure why this is yet, so will have another look tonight.
@mythz I couldn’t get the symbols from the symbolsources specified in the debugging docs and had to just clone the assets repo and unpack the nuget packages, are the symbols being uploaded ok during release?
@Mac SymbolSource is dead and always fails when trying to publish the symbols. I’ve mentioned a couple of alternatives in this previous answer.
As it’s easier for me to debug this since I’ve got local clones of all the repos, I’ve just looked into this and it’s due to the static serializer was null which is now resolved in this commit.
That link didn’t work for me, just kept “loading” forever. But I don’t really want to add a 3rd CI into the mix as we’re already using TeamCity and Travis CI. We’re also publishing the symbols for each release to:
ok, must be only for logged in account, point is that it’s not about appveyor or any specific CI. Below is the console output from publishing that the link showed:
Downloading artifact ServiceStack.Seq.RequestLogsFeature.4.0.66.0.nupkg to temporary location...OK
Publishing ServiceStack.Seq.RequestLogsFeature.4.0.66.0.nupkg to https://www.nuget.org/api/v2/package...OK
Downloading artifact ServiceStack.Seq.RequestLogsFeature.4.0.66.0.symbols.nupkg to temporary location...OK
Publishing ServiceStack.Seq.RequestLogsFeature.4.0.66.0.symbols.nupkg to https://nuget.smbsrc.net/api/v2/package...OK
Total packages published: 2
yeah, it’s the same apikey, we’re just using the default appveyor nuget deployment so its not clear what is happening under the covers when it deploys beyond the console output