SimpleStructuredBinaryFormat 1.1.0
dotnet add package SimpleStructuredBinaryFormat --version 1.1.0
NuGet\Install-Package SimpleStructuredBinaryFormat -Version 1.1.0
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="SimpleStructuredBinaryFormat" Version="1.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SimpleStructuredBinaryFormat" Version="1.1.0" />
<PackageReference Include="SimpleStructuredBinaryFormat" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SimpleStructuredBinaryFormat --version 1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SimpleStructuredBinaryFormat, 1.1.0"
#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.
#:package SimpleStructuredBinaryFormat@1.1.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=SimpleStructuredBinaryFormat&version=1.1.0
#tool nuget:?package=SimpleStructuredBinaryFormat&version=1.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Simple Structured Binary Format
Simple Structured Binary Format is a simple, efficient, structured binary data format. It mimics JSON, with additional types and compression support.
This library provides a C# interface for it, though feel free to port it to any other languages or write your own implementation!
Features
- Supports a bunch of data types:
null,object,array,bool,sbyte,short,int,long,byte,ushort,uint,ulong,Half,float,double,stringandbyte[] - Supports compression methods: None, Gzip, and Deflate.
- Simple API for reading and writing SSBF data.
Installation
Get it on NuGet
To use SSBF in your project, add a reference to the SimpleStructuredBinaryFormat namespace.
Usage
Writing Data
using SimpleStructuredBinaryFormat;
using System.IO;
using System.Linq;
var obj = new SsbfObject
{
["employees"] = new SsbfArray
{
new SsbfObject
{
["name"] = "John Doe",
["age"] = 30,
["gender"] = "male",
["married"] = false,
["salary"] = 50000.0
},
new SsbfObject
{
["name"] = "Mary Jane",
["age"] = 28,
["gender"] = "female",
["married"] = true,
["salary"] = 60000.0
},
},
["data"] = Enumerable.Range(0, 10000).Select(x => (byte)(x % 256)).ToArray()
};
using (var stream = File.Open("employees.ssbf", FileMode.Create))
{
SsbfWrite.WriteToStream(stream, obj, Compression.Gzip);
}
Reading Data
using SimpleStructuredBinaryFormat;
using System.IO;
using (var stream = File.Open("employees.ssbf", FileMode.Open))
{
var obj = SsbfRead.ReadFromStream(stream);
Console.WriteLine(obj);
}
API Reference
Classes
SsbfObject: Represents a structured object with key-value pairs.SsbfArray: Represents an array of SSBF nodes.SsbfByteArray: Represents a byte array.SsbfWrite: Provides methods to write SSBF data to a stream.SsbfRead: Provides methods to read SSBF data from a stream.
Methods
SsbfWrite.WriteToStream(Stream stream, SsbfObject obj, Compression compression): Writes the specified SSBF node to the stream.SsbfRead.ReadFromStream(Stream stream): Reads an SSBF node from the stream.
Enums
Compression: Specifies the compression method. Values:None,Gzip(recommended),Deflate.
License
This project is licensed under the MIT License. See the LICENSE file for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.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.