Table of Contents

Text & Serialization - Guides

Recipe-style walk-throughs for the text family - the Bodu.Text.Encoding binary-to-text codecs, the Bodu.Text.Filtering include/exclude filtering engine, the Bodu.Text.Formats document formats, and the Bodu.Text.Bencode / Bodu.Text.Toml object serializers. Four different jobs, four guide sections; this page is the topic-level map.

If you are unsure which package does the job you have, start with the topic overview - it leads with the codec / format / serializer disambiguation - and the topic concepts for the shared vocabulary.

Bodu.Text.Encoding - binary-to-text codecs

Bytes ⇄ printable text. Base16 through Base85 with every common variant, plus Base45, Base62, and Bech32.

Overview

The encoding family at a glance - payload expansion, variants, the choose-an-encoding table, and the shared API shape.

Using Base64

Standard / URL-safe / MIME variants, JWT decoding, and 76-character line wrapping.

Using Base32

Standard / HexExtended / Crockford / Z-Base-32 variants, TOTP secrets, and padding control.

Using Bech32

Bech32 / Bech32m (BIP 173 / 350) - human-readable part, separator, 5-bit data, and the six-symbol checksum.

The IBinaryEncoding interface

Runtime-selected encoding choice via BinaryEncodings.Get(name) and the unified IBinaryEncoding contract.

Bodu.Text.Filtering - include/exclude filtering

Selecting values by pattern. Glob and regex patterns compiled into one cost-tiered matcher, with set or ordered-rule semantics and built-in telemetry.

Overview

How the engine works - compile-once filters, cost-tier classification, and the guide map.

Patterns and globs

The full glob grammar - classes, {a,b} alternation, escapes - and when to reach for regex.

Evaluation modes

AnyMatch sets vs LastMatchWins ordered rules, allowlists, and gitignore-convention parsing.

Telemetry and tuning

Statistics, per-pattern hit counts, the observer hook, cost tiers, and fail-safe regex timeouts.

Bodu.Text.Formats - document formats

Parse, edit, and write structured documents - typed value models with streaming readers and writers.

Overview

The three format families, the namespace map, and where each guide fits.

Using delimited (CSV / TSV)

RFC 4180 quoting, delimiter selection, header handling, and the streaming Utf8DelimitedReader / Utf8DelimitedWriter.

Using DotEnv

KEY=VALUE parsing, quoting and escape rules, the export prefix, and inline-comment handling.

Using INI

Section / entry model, comment trivia, duplicate policies, and comment-preserving edits through the mutable IniNode DOM (the read-only IniDocument is for inspection).

Streams and async I/O

The forward-only Utf8*Reader / Utf8*Writer token surfaces and the typed record-streaming serializer overloads.

Choosing a text format

Delimited vs. DotEnv vs. INI - the shape of data each format suits and how to pick between them.

Bodu.Text.Bencode, Bodu.Text.Toml, and Bodu.Text.Yaml - object serializers

POCO ⇄ wire format, System.Text.Json-shaped. The three libraries share an architecture and vocabulary - everything learned for one transfers to the next by swapping the prefix. Each has its own guide set.

Overview

The three libraries, the shared tiers (serializer, DOMs, reader / writer), how to choose a format, and the per-library guide hubs.

TOML guides

TomlSerializer - type mapping, spec-version selection, both DOMs, the full attribute family, converters, callbacks, and the built-in catalog.

Bencode guides

BencodeSerializer - byte strings, canonical key ordering, the kinds Bencode cannot represent, attributes, converters, callbacks, and the catalog.

YAML guides

YamlSerializer - type mapping, the 1.2 core schema, both DOMs, multi-document streams, the shared Bodu.Text.Serialization attributes, custom converters, and the catalog.

Suggested reading path

  1. Topic overview - settle which of the three jobs you have.
  2. The matching overview guide - encodings, formats, or serializers.
  3. The per-type walk-through for your format or encoding - e.g. Base64, INI, or Using TOML.
  4. For the serializers, the customization guides - e.g. TOML's attributes, then converters (Bencode and YAML carry the same guides under their own hubs).

Where to go next