BitSerializer 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package BitSerializer --version 1.0.2                
NuGet\Install-Package BitSerializer -Version 1.0.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="BitSerializer" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add BitSerializer --version 1.0.2                
#r "nuget: BitSerializer, 1.0.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install BitSerializer as a Cake Addin
#addin nuget:?package=BitSerializer&version=1.0.2

// Install BitSerializer as a Cake Tool
#tool nuget:?package=BitSerializer&version=1.0.2                

BitSerializer

Binary serializer built with low latency network communication in mind.

Key features

  • Easy to use
  • Lightweight
  • Fast serialization and deserialization (see Performance section)
  • Supports nested schema types
  • No external compiler required
  • Classes/Structs as schema
  • Included sample projects

Performance

chart

How to use?

Samples

The best way to learn how to use BitSerializer is to take a look at the provided sample projects.

Schema definition

Define a schema class/struct containing fields you want to serialize.

Example
public class DataPacket
{
    // Fields or properties you want to serialize
    public int Id { get; set; }
    public byte[] Payload { get; set; }

    // Remember to always include a parameterless constructor, otherwise the deserializer won't be able
    // to create a new instance of the class.
    public DataPacket()
    {

    }

    public DataPacket(int id, byte[] payload)
    {
        Id = id;
        Payload = payload;
    }
}

Serialization

Create an instance of the schema class and pass it to the BinarySerializer.Serialize method.

Example
DataPacket packet = new DataPacket(
    id: 1,
    payload: new byte[] { 0x1, 0x2, 0x3 }
);
byte[] bytes = BinarySerializer.Serialize(packet);

Deserialization

Pass bytes returned by the BinarySerializer.Serialize to the BinarySerializer.Deserialize<T> method specifying the type of the schema class.

Example
DataPacket packet = BinarySerializer.Deserialize<DataPacket>(bytes);
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net5.0

    • 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
1.0.3 554 2/4/2022
1.0.2 1,440 11/28/2021
1.0.1 509 6/5/2020