JsonSubTypes VS Protobuf.NET

Compare JsonSubTypes vs Protobuf.NET and see what are their differences.

Protobuf.NET

Protocol Buffers library for idiomatic .NET (by protobuf-net)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
JsonSubTypes Protobuf.NET
4 10
398 4,542
- 0.9%
3.8 6.2
about 2 months ago about 1 month ago
C# C#
MIT License GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

JsonSubTypes

Posts with mentions or reviews of JsonSubTypes. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-09-04.
  • .Net 6 - Rest Api is deserializing property of "object" type to JsonElement type (System.Text.Json)
    1 project | /r/dotnet | 17 Jul 2022
  • An API receives different message types
    1 project | /r/csharp | 8 Sep 2021
    If messages are arriving as Json you can use JsonSubTypes to deserialize to different DTOs based on the UUIDs (https://github.com/manuc66/JsonSubTypes) and then use the visitor pattern to dispatch the DTOs to the correct method.
  • What is your preferred way of creating application specific files for a local application?
    3 projects | /r/csharp | 4 Sep 2021
    Personally I've had good success with JsonSubTypes for deserializing discriminated unions from JSON. It'll serialize stuff into the right type, and then you just need a switch statement to typecast it afterwards.
  • How to create a data-driven software product that indicates pre-coded functionality?
    1 project | /r/csharp | 9 Jun 2021
    There is a small use case that I consider valid for this. It would be for determining a set of pre-defined behaviors to make available to definitions of entities in a game. And the json data would not be coming from external sources, it would be tightly controlled by me as the developer. The response you made to the other comment on my post shared a link that said the practice shouldn't be done with untrusted data, and there would be no untrusted data since there'd be no external data. The article also mentions to restrict the types that can be deserialized, and that is definitely possible. The architecture pattern for this is ECS (Entity Component System) and the data-drive portion might have been a mis-naming of my post, it's more of a lot of the design of entities and components is stored in data files, and there are a few cases where I will want to associate certain functionality in the code with these data entity definitions. No operating system level functionality would be exposed. I've even been referred to a library available via nuget that will allow for what I'm attempting to do: https://github.com/manuc66/JsonSubTypes

Protobuf.NET

Posts with mentions or reviews of Protobuf.NET. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-02-09.
  • ProtoBuf message serialization in Akka.NET using protobuf-net
    2 projects | dev.to | 9 Feb 2023
    This article requires that reader is familar with core concept of Akka.NET serialization (see https://getakka.net/articles/serialization/serialization.html) and ProtoBuf-Net library (see https://github.com/protobuf-net/protobuf-net).
  • Auto-Incrementing Sequences
    2 projects | dev.to | 8 Jan 2023
    The model used, a simple invoice which uses protobuf-net 1 NuGet package to store information in a binary file.
  • A .NET source generator for generating object mappings. Trimming save and fast. Inspired by MapStruct.
    3 projects | /r/programming | 28 Feb 2022
    Not sure if it works with gRPC but I really like how Protobuf.NET uses attributes like other serializers instead of needing to write a .proto and generate (not-very-C#-friendly) classes from it. Well, until you need to interop with other languages.
  • Practice resources for handling and optimizing large game data sets?
    3 projects | /r/Unity3D | 1 Feb 2022
    I mentioned JSON, but there are many formats that are much more efficient. I can mention FlatBuffers, MessagePack and ProtoBuf. These are the ones I've used myself, and personally I'm most comfortable with MessagePack and ProtoBuf. I don't think the performance would be an issue if you had to choose between these three, it's mostly the API that is different.
  • Automatically generate proxy services for blazor wasm+asp.net core?
    1 project | /r/Blazor | 27 Jan 2022
    The closest way would be using Grpc.Web + Protobuf.net. The overall experience is pretty close to WCF server + Client where you share a common interface and let the client and server just call through those.
  • gRPC Development experience in modern .NET
    7 projects | /r/dotnet | 12 Nov 2021
    Grpc Web with Blazor WASM is a really pleasant experience so far imo for my personal projects at home. You have strongly typed models and methods and you have choice on sharing the contract between client and server if you're using code first instead of proto IDL files (e.g. protobuf-net).
  • What is your preferred way of creating application specific files for a local application?
    3 projects | /r/csharp | 4 Sep 2021
  • Integrating Apollo Studio with GraphQL for .NET - Part 2
    2 projects | dev.to | 28 May 2021
    It's pretty straight-forward to follow the protobuf-net docs to serialize the report, but we should really GZIP the stream for sending to reduce bandwidth consumption and improve performance:
  • Integrating Apollo Studio with GraphQL for .NET - Part 1
    2 projects | dev.to | 27 May 2021
    There are a number of Protobuf implementations for .NET Core, but I like protobuf-net as it's a nice, clean, Apache 2.0 Licensed implementation. It is also supported by protogen, a great online generator that will output protobuf-net classes ready for use (for its CSharp profile). If you open the latest schema from the link here, you can simply paste into the generator. NOTE: At the time of writing, [(js_preEncoded)=true] isn't supported by the generator, and can be removed from the proto schema.
  • Don't Use Protobuf for Telemetry
    8 projects | news.ycombinator.com | 30 Dec 2020
    > Protobuf-java is a little heavy [...] Just depending on the library adds 1.6MB and nearly 700 classes before you even generate your own message classes.

    By comparison, protobuf-net [1] is about 260KB and 68 classes. Python's [2] is a 1MB package download (with source).

    Why's the Java one so big?

    [1] https://github.com/protobuf-net/protobuf-net

    [2] https://pypi.org/project/protobuf

What are some alternatives?

When comparing JsonSubTypes and Protobuf.NET you can also consider the following projects:

Json.NET - Json.NET is a popular high-performance JSON framework for .NET

Protobuf - Protocol Buffers - Google's data interchange format

MessagePack for C# (.NET, .NET Core, Unity, Xamarin) - Extremely Fast MessagePack Serializer for C#(.NET, .NET Core, Unity, Xamarin). / msgpack.org[C#]

JsonKnownTypes - Simple way to serialize and deserialize polymorphic types for Json.NET

Utf8Json - Definitely Fastest and Zero Allocation JSON Serializer for C#(NET, .NET Core, Unity, Xamarin).

ZeroFormatter - Infinitely Fast Deserializer for .NET, .NET Core and Unity.

Wire - Binary serializer for POCO objects

Msgpack-Cli - MessagePack implementation for Common Language Infrastructure / msgpack.org[C#]