DDEncoder 0.1.1
dotnet add package DDEncoder --version 0.1.1
NuGet\Install-Package DDEncoder -Version 0.1.1
<PackageReference Include="DDEncoder" Version="0.1.1" />
<PackageVersion Include="DDEncoder" Version="0.1.1" />
<PackageReference Include="DDEncoder" />
paket add DDEncoder --version 0.1.1
#r "nuget: DDEncoder, 0.1.1"
#:package DDEncoder@0.1.1
#addin nuget:?package=DDEncoder&version=0.1.1
#tool nuget:?package=DDEncoder&version=0.1.1
DDEncoder
DDEncoder is a lightweight binary serialization library built around the simplest possible reuse pattern. Instead of relying on reflection, attributes, or external schemas, objects explicitly define how they encode and decode themselves.
The core idea is that an object writes only the data required to rebuild itself into an EncodedObject, and later reads that data back in the same order. This makes the encoding process predictable, fast, and easy to reason about.
DDEncoder supports primitive values, arrays, and nested objects, allowing complex object graphs to be serialized without special configuration. Derived classes can naturally extend their base class’s encoding by appending additional data, preserving a clear and logical inheritance model.
The library is designed for scenarios where control, simplicity, and long-term maintainability matter more than automatic magic. It is especially well suited to internal tools, network protocols, and file formats where the encoding contract is explicit and stable.
A very simple example of use would be:
using DDEncoder;
public sealed class TestEncodable : IEncodable
{
public int x { get; }
static TestEncodable()
{
DDEncoder.DDEncoder.RegisterType(typeof(TestEncodable));
}
public TestEncodable(int x)
{
this.x = x;
}
public TestEncodable(EncodedObject eo)
{
x = eo.Next<int>();
}
void IEncodable.Encode(ref EncodedObject encodedObj)
{
encodedObj.Append(x);
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|