Bodu.Core 0.5.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Bodu.Core --version 0.5.0
                    
NuGet\Install-Package Bodu.Core -Version 0.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="Bodu.Core" Version="0.5.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bodu.Core" Version="0.5.0" />
                    
Directory.Packages.props
<PackageReference Include="Bodu.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 Bodu.Core --version 0.5.0
                    
#r "nuget: Bodu.Core, 0.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 Bodu.Core@0.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=Bodu.Core&version=0.5.0
                    
Install as a Cake Addin
#tool nuget:?package=Bodu.Core&version=0.5.0
                    
Install as a Cake Tool

Bodu.Core

API stability — Stable.

Foundational .NET 8 building blocks: extension methods over strings, dates, numerics, spans; pooled buffer builders; argument validation helpers; a non-cryptographic RNG; a synchronous rate limiter; immutable day-of-week patterns; and a Result<T> type for explicit error handling.

Collections

Note: Specialized generic collections (CircularBuffer<T>, Deque<T>, etc.) have been moved to the separate Bodu.Collections package. The namespace structure is unchanged; consumers update the package reference only. Bodu.Collections depends on Bodu.Core.

(Remove the 12-item table entirely)

Key Types

  • ThrowHelper — argument validation helpers (null, range, enum, argument-expression capture)
  • RateGate (Bodu.Threading) — synchronous rate limiter (leading-edge throttling)
  • WeekPattern — immutable bitmask over seven days with composition operators
  • Result<T> (Bodu.Functional) — explicit success/failure type
  • XorShiftRandom — high-performance xorshift128 PRNG (non-cryptographic)
  • SequenceGenerator (Bodu.Sequences) — lazy sequence factories (Range, Repeat, Fibonacci, etc.)

Extensions

Target Methods Namespace
Array<T> PadLeft, PadRight Bodu.Extensions
DateOnly Quarter queries, working-day checks Bodu.Extensions
DateTime Unix epoch conversions, formatting Bodu.Extensions
string Line splitting, case conversion Bodu.Extensions
span<T> / IEnumerable Collection and sequence helpers Bodu.Collections.Extensions

Buffers

  • PooledBufferBuilder<T> (Bodu.Buffers) — ArrayPool-backed accumulator with auto-growth

Testing

Tests live in test/ as MSTest partial classes mirroring src/. Run tiers via the runsettings files at the solution root:

dotnet test Bodu.Core/test/Bodu.Core.Test.csproj --settings smoke.runsettings
dotnet test Bodu.Core/test/Bodu.Core.Test.csproj --settings bvt.runsettings
dotnet test Bodu.Core/test/Bodu.Core.Test.csproj --settings regression.runsettings

Collection behaviour is validated through shared contract bases (CollectionContractTests<>, ReadOnlyCollectionContractTests<>, SetContractTests<>, EnumeratorContractTests<>, DebugViewContractTests<>, NonGenericCollectionContractTests<>) so every collection is held to the same interface contract.

License

MIT. © Bodu Pty. Ltd.

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 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 (44)

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

Package Downloads
Bodu.Security.Cryptography

Managed implementations of modern and legacy cryptographic primitives for .NET (block ciphers, AEAD modes, hashes/MACs, padding, transforms, the RFC 6962 Merkle tree with inclusion and consistency proofs, and asymmetric algorithms: X25519, Ed25519, and the post-quantum ML-KEM / ML-DSA). NOT independently audited, NOT FIPS-validated, and side-channel resistance is best-effort only — see the package README. Use the platform System.Security.Cryptography types where they cover your needs.

Bodu.Collections

Specialized generic collections for .NET 8: circular buffer, deque, evicting dictionary, sequenced dictionary, indexed and ordered sets, indexed priority queue, multi-value dictionary, multiset, range set and range dictionary, segmented buffer, graphs (adjacency-list graph, traversal and shortest-path algorithms, disjoint set), and trees (n-ary tree, tries). Also ships the approximate sketches in Bodu.Collections.Probabilistic and the packed BitSet in Bodu.Collections.Specialized. Every collection ships a struct enumerator for allocation-free iteration and implements the standard BCL collection interfaces. Thread-safe variants live in Bodu.Collections.Concurrent.

Bodu.Text.Encoding

Binary-to-text encodings for .NET 8 — Base16, Base32, Base45, Base58, Base62, Base64, Base85, and Bech32 — with a uniform static API, variant selection, encode-time formatting options, and decode-time leniency styles. Every encoding exposes span, string, UTF-8, and IBufferWriter surfaces with Try* and length-calculation overloads for allocation-free use.

Bodu.Globalization.Recurrence

Recurrence-rule evaluation for .NET. Provides RecurrenceRule, an RFC 5545 iCalendar RRULE parser and occurrence enumerator (FREQ DAILY/WEEKLY/MONTHLY/YEARLY with INTERVAL, COUNT, UNTIL, WKST, and the BYMONTH/BYWEEKNO/BYYEARDAY/BYMONTHDAY/BYDAY/BYHOUR/BYMINUTE/BYSECOND/BYSETPOS parts); RecurrenceSet, which composes one or more rules with explicit RDATE additions and EXDATE exclusions; CronExpression, a Vixie-style cron parser (five-field, optional-seconds six-field, and the @yearly/@monthly/@weekly/@daily/@hourly macros); and AnchoredInterval, an instant-anchored interval recurrence ("every 4 hours after the last completed run") in the RFC 5545 duration grammar. Every form answers next- and previous-occurrence queries with inclusive flags over DateTime and DateTimeOffset, parses with defect-naming TryParse overloads, round-trips its canonical text, and compares by value; every answer is a pure function of the arguments — no wall clock, no machine time zone. A natural sibling of the Bodu.Globalization.Calendar notable-date engine; depends only on Bodu.Core.

Bodu.Text.Serialization

Shared, format-agnostic serialization primitives for the Bodu System.Text.Json-shaped text serializers (Bencode, TOML, YAML, Delimited, DotEnv, INI): the attribute family, ignore/creation/unmapped-member/naming enums, serialization callback interfaces, and naming policies. Consumed by the per-format serializer packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 804 9/24/2026
0.7.0 459 9/24/2026
0.6.0 256 9/24/2026
0.5.0 206 9/23/2026