NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #217 most downloaded on NuGet
Provides simple access to fast and efficient "Protocol Buffers" serialization from .NET applications
Last release 18 days ago
16 Sep 2026
Release timing varies
gaps range from 9 days to 13 months
Most releases are documented
notes for 50 of the last 60 stable releases
25 versions withdrawn
withdrawn after publishing
127 years old
110 releases · first in 1900
new MSBuild .proto tools added (huge thanks go to Mark Pflug here)
Get* and Add* implementations for repeated; add Set* implementations for regularprotoc to 3.6.1set accessorsGetProto<T> now emits oneof-style .proto syntax for inheritancemerge #412/fix #408 - ReadObject/WriteObject failed on value types
ReadObject/WriteObject failed on value typesIReadOnlyCollection membersOne column per quarter.
- add UAP TFM
Nothing published for this version
IMPORTANT fix #403 - key cache was incorrect in some cases involving multi-level inheritance; update from 2.3.8 or above is highly recommended
fix #402 - zero decimal with non-trivial sign/scale should round-trip correctly
decimal with non-trivial sign/scale should round-trip correctlyfix #401 - error introduced in the new key cache from v2.3.8
fix #388 - stability when DynamicMethod is not available (UWP, iOS, etc)
DynamicMethod is not available (UWP, iOS, etc)fix behaviour of DiscriminatedUnion* for None enum case
DiscriminatedUnion* for None enum caseadd discriminator accessor to discriminated union types, for protogen v1.0.6
Nothing published for this version
Nothing published for this version
add .NET Standard 1.0 "profile 259" support - contributed by Lorick Russow
add .NET Standard 2.0 build target
add codegen support for C# 3.0; C# 6.0 is still the default, but can be overridden via CLI or .proto options; see #343
fix #341 - dictionaries with nullable types
fix protogen bug with [DefaultValue] for enums not including the fully qualified name when required
[DefaultValue] for enums not including the fully qualified name when requiredfix bug with IgnoreListHandling not being respected for custom dictionary-like types (with "map" taking precedence)
IgnoreListHandling not being respected for custom dictionary-like types (with "map" taking precedence)fix bug with optional being emitted for sub-types in proto3 schemas
optional being emitted for sub-types in proto3 schemas (#280)ValueMember.Name - in particular allows runtime enum name configuration (#281)TKey is an enum type (#289)include better information when rejecting jagged arrays / nested lists (SO 45062514)
fix issue with "map" detection of complex dictionaries-of-arrays incorrectly trying to configure a MetaType for the array type
MetaType for the array typefix issue with unwanted static constructors being detected
MetaType instances for arraysproto2/proto3 DSL processing tools to make a resurgance; preview is available here
map<,>, Timestamp, DurationUri handling (#162 / #261)Type members should work with GetProto<T> (as string)critical bug fix #256 - length-based readers are failing; if you are using 2.2.0, please update as soon as possible (this bug was introduced in 2.2.0)
[Obsolete] markers left in place during 64-bit updatesenable 64-bit processing (2GiB+ file sizes) *within constraints* that no single sub-graph can exceed 2GiB; this is assisted by...
IsGroup property on [ProtoContract(...)] that indicates that a type should always be treated as a group (rather than having to specify "group" per-member); groups do not require length-prefix or buffering, so are trivially usable in huge filesValueTuple<...>(see also: protobuf-net: large data, and the future)
add support for custom static methods equivalent to static conversion operators, via [ProtoConverter]
[ProtoConverter]GetSchema: do not emit default values for non-optional members (#75)protoc; additional proto-path support (#119)DateTime serialization can include DateTimeKindUri serialization on PCLs (#98)Deserilize overload (#12)Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
(baseline)
(baseline)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →