BigRedProf.Data.Core 0.10.1

Prefix Reserved
dotnet add package BigRedProf.Data.Core --version 0.10.1
                    
NuGet\Install-Package BigRedProf.Data.Core -Version 0.10.1
                    
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="BigRedProf.Data.Core" Version="0.10.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BigRedProf.Data.Core" Version="0.10.1" />
                    
Directory.Packages.props
<PackageReference Include="BigRedProf.Data.Core" />
                    
Project file
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 BigRedProf.Data.Core --version 0.10.1
                    
#r "nuget: BigRedProf.Data.Core, 0.10.1"
                    
#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 BigRedProf.Data.Core@0.10.1
                    
#: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=BigRedProf.Data.Core&version=0.10.1
                    
Install as a Cake Addin
#tool nuget:?package=BigRedProf.Data.Core&version=0.10.1
                    
Install as a Cake Tool

BigRedProf.Data

The BigRedProf.Data library is a simple, flexible .NET library for defining and serializing models.

Development

This repository is driven by Task. Provision the required .NET SDK, Task, and PowerShell 7 from the repository root:

# Windows
powershell -ExecutionPolicy Bypass -File .\script\bootstrap\windows.ps1
# Ubuntu
bash ./script/bootstrap/ubuntu.sh

The scripts install only missing or incompatible tools, diagnose the resulting environment, and run task verify. See script/bootstrap/README.md for check-only and non-interactive options.

For day-to-day development:

task --list      # see available tasks
task verify      # build + unit tests — everything required before merging
task build       # fast inner loop
task doctor      # toolchain/version diagnostics
task pack        # build the NuGet packages locally

Task loads the layered environment (.env.local then .env) on every invocation, so no shell setup is required — commands work in a fresh process for humans and agents alike. Note the solution lives at src/Data.sln, not at the repository root.

BigRedProf.Data.Core, BigRedProf.Data.PackRatCompiler and BigRedProf.Data.Tape are published to nuget.org by CI when a v* tag is pushed. Merges to main build and test but publish nothing: a release is a tag, not a merge. The version comes from the tag via MinVer, so to release, tag v<major>.<minor>.<patch> and push the tag. task pack builds the packages locally and deliberately cannot push. See script/README.md for the (short) script layer.

Glossary

The full account, and the reasoning behind these names, is in docs/ontology-draft-datum.md.

bit - precisely one of two discrete states; uses the symbols 0 and 1

code - a sequence of bits (think cryptographic messages, NOT computer instructions); a code by itself does not mean anything. The sequence may be empty: an event meaning "this happened" and nothing further is answered by naming which event it was, leaving nothing for bits to carry

schema - the agreement that gives a code meaning: a correspondence between codes and the things those codes stand for

datum - a code together with the schema under which that code is to be read; many data, collectively, are data

subject - the thing a datum represents; a datum represents, or models, its subject


model - a representation of a subject at runtime, made of objects rather than bits; a runtime model and a datum are two representations of the same subject, and packing converts between them


packing - the act of turning a model into a code (think serialization)

unpacking - the act of turning a code into a model (think deserialization)

pack rat - the actor responsible for packing and unpacking a specific model

pied piper - the actor who organizes all the pack rats (consider creating a singleton pied piper in your startup code if you're using dependency injection)


trait - a named aspect a subject may have; a trait identifier designates both the question being asked and the schema of the answer (eg: "What is your name?", answered "Memorial Stadium")

A trait identifier is a global agreement, and three rules about it are permanent: it is bound to its schema forever; a trait is present or absent, with absence being how you say no; and a subject has at most one answer per question, so multiplicity lives inside the answer's schema.

trait value - a trait identifier together with a code answering that trait; the trait's schema is what makes that code a datum

flex datum - a datum whose subject is represented by independently identified traits; a consumer can use the traits it recognizes without understanding the rest, and unrecognized traits are skipped, preserved, and carried forward untouched


There are two ways to compose a representation, and neither is the lesser one.

A structured schema -- what [GeneratePackRat] and [PackField] declare -- is a form: numbered blanks in a fixed order, where a part is identified by its position and by nothing else. It refuses to write down what both parties already know, which is why it is compact. It asks in return that both parties hold the identical form.

A flex datum is a card: labeled entries, where a part is identified globally. It pays an identifier per entry to buy the ability to be read by someone who does not hold your form.

Use a form when you control every writer and reader and they change together. Use a flex datum when you do not know who will read this, when writers and readers will change at different times, and when records must survive being exported, archived, and read back by strangers.


token - a small code representing a larger model (think the heap address of a reference type or the foreign key of a database row)

tokenized model - a model that's packed as its token value rather than as its full value

tokenizer - a mapping of tokens to models and models to tokens; can be hard-coded if known at compile-time or dynamically loaded at runtime

License

BigRedProf.Data is licensed under the MIT License. See LICENSE for more information.

Contact

For questions, suggestions, or issues, please contact Professor at BigRedProf@outlook.com.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages (6)

Showing the top 5 NuGet packages that depend on BigRedProf.Data.Core:

Package Downloads
BigRedProf.Stories.Core.Data

The schema declarations and durable vocabulary for BigRedProf.Stories.

BigRedProf.Content.Core

A content-addressable data store. Content stores store codes by multihash and record their durable history in a story.

BigRedProf.Data.Tape

Tape storage for BigRedProf codes: append-only frames on a tape, and the readers and writers that move over them.

BigRedProf.Stories.Core.Models

The model classes for BigRedProf.Stories.

BigRedProf.Stories.Logging.Data

The schema declarations and durable vocabulary for BigRedProf.Stories.Logging.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.10.1 465 9/21/2026
0.10.0 956 8/24/2026
0.9.0-rc.5 85 8/23/2026
0.9.0-rc.4 79 8/23/2026
0.9.0-rc.3 168 8/22/2026
0.9.0-rc.2 85 8/22/2026
0.9.0-rc.1 85 8/22/2026
0.8.0 324 8/18/2026
0.8.0-rc.1 73 8/18/2026