Paradise.BLOB
0.6.2
dotnet add package Paradise.BLOB --version 0.6.2
NuGet\Install-Package Paradise.BLOB -Version 0.6.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="Paradise.BLOB" Version="0.6.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Paradise.BLOB" Version="0.6.2" />
<PackageReference Include="Paradise.BLOB" />
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 Paradise.BLOB --version 0.6.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Paradise.BLOB, 0.6.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.
#:package Paradise.BLOB@0.6.2
#: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=Paradise.BLOB&version=0.6.2
#tool nuget:?package=Paradise.BLOB&version=0.6.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Paradise.BLOB
Paradise.BLOB is a .NET blob builder for immutable unmanaged data layouts. It provides Unity-style blob primitives and builders that work in plain .NET code.
Install
dotnet add package Paradise.BLOB
Features
- Build immutable unmanaged roots with
ValueBuilder<T>andStructBuilder<T>. - Store arrays, strings, pointers, trees, sorted arrays, and dynamically typed payloads.
- Read blobs through raw bytes or pinned
ManagedBlobAssetReference<T>handles. - Keep offsets and alignment correct without hand-rolling binary layouts.
- Friendly to regular .NET apps and NativeAOT-oriented workflows.
Quick start
using Paradise.BLOB;
using System.Text;
public struct DemoBlob
{
public BlobString<UTF8Encoding> Name;
public BlobArray<int> Values;
public BlobPtr<int> MaxValue;
}
var builder = new StructBuilder<DemoBlob>();
builder.SetString(ref builder.Value.Name, "demo");
builder.SetArray(ref builder.Value.Values, new[] { 1, 2, 3 });
builder.SetPointer(ref builder.Value.MaxValue, 3);
using var blob = builder.CreateManagedBlobAssetReference();
Console.WriteLine(blob.Value.Name.ToString());
Console.WriteLine(string.Join(", ", blob.Value.Values.ToArray()));
Console.WriteLine(blob.Value.MaxValue.Value);
Common builders
ArrayBuilder<T>andSetArray(...)for contiguous unmanaged arrays.StringBuilder<TEncoding>andSetString(...)for encoded blob strings.PtrBuilderWithNewValue<T>andSetPointer(...)for blob pointers.TreeBuilder<T>andAnyTreeBuilderfor preordered trees with subtree end indices.SortedArrayBuilder<TKey, TValue>for hash-ordered key/value lookup tables.
Notes
- Blob roots and referenced values must be unmanaged.
- Dispose
ManagedBlobAssetReference<T>when you are done with it because it pins the backing byte array. - Use
CreateBlob()if you want the raw serialized bytes for storage or transport.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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.
-
net10.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Paradise.BLOB:
| Package | Downloads |
|---|---|
|
Paradise.BT
Pure .NET behavior tree runtime inspired by EntitiesBT. |
|
|
Paradise.Physics
Stateless collision/physics query library for Paradise Engine: static colliders, raycasts and shape casts with no caches and no hidden state. |
GitHub repositories
This package is not used by any popular GitHub repositories.