Bodu.Core
1.0.0
dotnet add package Bodu.Core --version 1.0.0
NuGet\Install-Package Bodu.Core -Version 1.0.0
<PackageReference Include="Bodu.Core" Version="1.0.0" />
<PackageVersion Include="Bodu.Core" Version="1.0.0" />
<PackageReference Include="Bodu.Core" />
paket add Bodu.Core --version 1.0.0
#r "nuget: Bodu.Core, 1.0.0"
#:package Bodu.Core@1.0.0
#addin nuget:?package=Bodu.Core&version=1.0.0
#tool nuget:?package=Bodu.Core&version=1.0.0
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 operatorsResult<T>(Bodu.Functional) — explicit success/failure typeXorShiftRandom— 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 | 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 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. |
-
net10.0
- No dependencies.
-
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.