Table of Contents

Articles

Narrative documentation and library overviews complement the auto-generated API reference.

If you are new to Bodu, start with the project introduction and the cross-library getting-started page. The Bodu.IO.Hashing and Bodu.Security.Cryptography introductions map the hashing and cryptography type hierarchy and explain how to choose between types that sound similar.

API namespace landing pages

Each top-level namespace has a landing page that introduces its purpose, lists its key types, and shows a minimal usage example before handing off to the auto-generated reference.

  • Bodu - Bodu.Core foundations The WeekPattern value type, pooled buffers, the Bodu.Threading async coordination primitives, the Bodu.Functional railway outcomes (Option<T> / Result<T> / Either<TLeft,TRight>), the date / numeric / span extensions, and the centralized ThrowHelper argument validation every other package builds on.

  • Bodu.Collections.Generic - the Bodu.Collections catalogue Fixed-capacity circular buffers, the Deque<T>, the EvictingDictionary<TKey, TValue> with six eviction policies, the SequencedDictionary<TKey, TValue> (Java LinkedHashMap shape) with insertion/access ordering and O(1) first/last access, range-keyed dictionaries, navigable sets, interval trees, graphs, tries, and the probabilistic sketches - shipped in the Bodu.Collections package, with the lock-free and lock-striped variants in Bodu.Collections.Concurrent.

  • Bodu.IO.Hashing - fingerprints, checksums, and check digits Non-cryptographic hashes on System.IO.Hashing.NonCryptographicHashAlgorithm - the full CRC RevEng catalogue (widths 1-64 bits), the Fletcher 16 / 32 / 64 family, Adler-32 / 32C / 64, FNV-1 / 1a, CityHash, MurmurHash3, Pearson, classic string hashes - plus single- and multi-character check digits (Luhn, Damm, Verhoeff, EAN, GTIN, IBAN, ISBN, SEDOL, CUSIP, LEI).

  • Bodu.Security.Cryptography - ciphers, hashes, AEAD, and streaming tree digests Managed block ciphers (Threefish 256 / 512 / 1024, Serpent 128 / 256 / 512 / 1024, Camellia, Twofish, Blowfish, Skipjack), an AesBlockCipher adapter over the BCL AES engine paired with six AEAD mode transforms (GCM, CCM, OCB, EAX, SIV, GCM-SIV), keyed hashes (SipHash, Poly1305), cryptographic digests (Tiger, CubeHash, Snefru, Whirlpool, BLAKE2/3, Skein, Shake, ASCON), Merkle-tree hashing, and full ASCON-AEAD support.

  • Bodu.Globalization.Calendar - notable-date resolution Rule-driven notable-date resolution with fixed, day-of-week-in-month, offset, and algorithm strategies - including Gregorian and Orthodox Easter, Hindu Lunar dates, Losar, Vesak, Asalha Puja, and Qingming - driven from pluggable XML or JSON rule sources, an observance-adjustment pipeline, and a trust-policy-driven plugin host.

  • Bodu.Text.Filtering - include/exclude text filtering A high-performance filtering engine for lists of text values: glob (wildcard, character-class, {a,b} alternation) and regex patterns compiled once into a cost-tiered TextFilter that runs the cheapest strategies first. Ant / MSBuild-style AnyMatch sets or gitignore-style LastMatchWins ordered rules with ! re-inclusion, gitignore-convention line parsing, and built-in telemetry - decision counters, per-pattern hit counts, and a per-decision observer hook.

  • Bodu.Text.Formats - line-oriented text document formats An umbrella over three System.Text.Json-shaped sibling packages - Delimited (RFC 4180 CSV / TSV), DotEnv (.env key/value), and INI (comment-preserving) - each exposing the same shape: a forward-only Utf8…Reader / Utf8…Writer pair, a …Serializer POCO mapper (with streaming and reflection-free factory overloads), a mutable …Node DOM and a read-only …Document DOM, dialect policies for dirty input, and strict invariant enforcement.

  • Bodu.Text.Bencode, Bodu.Text.Toml & Bodu.Text.Yaml - object-mapping serializers Three libraries that map your own types to and from a format - Bencode (BitTorrent BEP 3), TOML (v1.0.0 / v1.1.0), and YAML (1.2 core schema). Deliberate siblings over the shared Bodu.Text.Serialization engine, each shipping a …Serializer, a mutable …Node and a read-only …Document DOM, a low-level Utf8…Reader / Utf8…Writer ref-struct pair, and the full converter / attribute / callback / naming-policy surface.

  • Bodu.Text - encoding detection and text/byte conversion helpers BOM-based EncodingDetection plus EncodingExtensions and StringEncodingExtensions - span-, UTF-8-, and pooled-buffer-friendly transcoding, preamble handling, and validation on top of System.Text.Encoding, shipped in the Bodu.Core package. For binary-to-text codecs (Base16/32/58/64/85), see Bodu.Text.Encoding.

  • Bodu.Numerics - exact rational arithmetic and bounded intervals Fraction<T> for canonical rational arithmetic over any IBinaryInteger<T> backing type, with BigInteger-promoted intermediates, the full INumber<T> / ISignedNumber<T> surface, mixed-number and Unicode-vulgar-fraction formatting, continued-fraction expansion, and best rational approximation. Interval<T> for closed / open / half-open intervals with intersection, union, and adjacency.

  • Bodu.Financial - type-safe monetary primitives Money<TCurrency> where the currency is encoded as the type parameter so cross-currency arithmetic fails the build; Money for runtime-tagged scenarios; MoneyBag for multi-currency portfolios; a shipped catalogue of 184 ISO 4217 currencies (active + historic with demonetisation metadata); an audit-grade IDatedRateProvider stack; fair allocation; cash rounding; Fraction<BigInteger> interop for sub-minor-unit-precise chains; and three JSON wire shapes (strict / lenient / compact).

Guides

Project documentation