Just.Core 1.5.0

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

Just.Core

Small .NET library with useful helper classes, functions, and extensions — stuff used across multiple projects.

NuGet

Install

dotnet add package Just.Core

Features

Encoding

Base32 — RFC 4648 encoder/decoder with lowercase and no-padding options.

var encoded = Base32.Encode(bytes);                           // "ABCDEFGH..."
var encoded = Base32.Encode(bytes, Base32EncodeOptions.LowerCaseNoPadding);
var bytes   = Base32.Decode("ABCDEFGH...");

Base64Url — URL-safe Base64 for bytes, long, and Guid.

var str  = Base64Url.Encode(myGuid);           // "5QrdUxDUVkCAEGw8pvLsEw"
var guid = Base64Url.DecodeGuid(str);
var str  = Base64Url.Encode(123456789L);       // "7NcVAAAAAA"
var val  = Base64Url.DecodeLong(str);

IDs

SeqId — Time-based 64-bit sequential ID with configurable entropy. Thread-safe.

var id = SeqId.NextId();                       // default instance, Strong entropy
var id = SeqId.NextId(RngEntropy.Weak);        // faster, less collision-resistant

// Custom epoch
var generator = new SeqId(new DateTime(2024, 1, 1, 0, 0, 0, DateTimeKind.Utc));
var id = generator.Next();

Structure: [1 bit reserved][41 bits ms since epoch][8 bits sequence][14 bits random]

GuidV8 — Time-sortable UUID v8 with extractable timestamp.

var guid = GuidV8.NewGuid();                   // current UTC, Strong entropy
var guid = GuidV8.NewGuid(specificTime);
var when = GuidV8.ExtractTimestamp(guid);      // recover timestamp (100µs precision)

Collections

Map<T> / DataMap<T> — 2D grid container with indexing, enumeration, and min/max.

var map = new Map<int>(width: 10, height: 10, values);
var value = map[3, 5];                         // integer or double coordinates
var point = map.Get(3.5, 5.2);                 // MapPoint<T> with position metadata

var dmap = new DataMap<double>(values, 10, 10);
var min = dmap.Min;                            // MapPoint<double> — cached
var max = dmap.Max;                            // lazy, thread-safe on first access

// Stream serialization (sync + async)
dmap.WriteToStream(stream);
var copy = DataMap.ReadFromStream<double>(stream);

ImmutableSequence<T> — Immutable list with structural value equality.

var seq = new ImmutableSequence<int>([1, 2, 3]);
var seq2 = seq.Add(4);                         // new instance, seq unchanged
seq == seq2;                                   // false — 3 vs 4 elements
new ImmutableSequence<int>([1, 2, 3]) == seq;  // true — value equality

Supported Targets

  • .NET 8.0 (LTS)
  • .NET 9.0
  • .NET 10.0

License

MIT — see LICENSE.

Product 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 is compatible.  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 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.
  • net8.0

    • No dependencies.
  • net9.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.5.0 114 7/10/2026
1.4.1 344 11/11/2025
1.4.0 319 8/6/2025
1.3.0 132 8/2/2025
1.2.1 264 8/15/2024
1.2.0 198 8/15/2024
1.1.0 220 5/17/2024
1.0.0 332 12/14/2023