SimpleStructuredBinaryFormat 1.0.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package SimpleStructuredBinaryFormat --version 1.0.0
NuGet\Install-Package SimpleStructuredBinaryFormat -Version 1.0.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.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SimpleStructuredBinaryFormat" Version="1.0.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.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: SimpleStructuredBinaryFormat, 1.0.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.0.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.0.0
#tool nuget:?package=SimpleStructuredBinaryFormat&version=1.0.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:
object
,array
,bool
,sbyte
,short
,int
,long
,byte
,ushort
,uint
,ulong
,Half
,float
,double
,string
andbyte[]
- 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.