Refactor AcBinary streaming: multi-message protocol - Renamed framing flags to multiMessage for clarity in AsyncPipeReaderInput/AsyncPipeWriterOutput. - Multi-message mode ([202]=end-of-message) now auto-resets input for reuse; session end is explicit. - Updated framing state machine, buffer cycling, and sentinel logic. - Revised all serializer/deserializer entry points and tests for new protocol. - Expanded docs and XML comments to detail wire format and protocol constraints. - Updated benchmarks and tests for new streaming API and multi-message behavior. - Documented protocol limits and added security issue/TODO for type-name deserialization in SignalR binary protocol. |
||
|---|---|---|
| .. | ||
| BINARY_FEATURES.md | ||
| BINARY_FORMAT.md | ||
| BINARY_IMPLEMENTATION.md | ||
| BINARY_ISSUES.md | ||
| BINARY_OPTIONS.md | ||
| BINARY_SGEN.md | ||
| BINARY_TODO.md | ||
| BINARY_WRITERS.md | ||
| README.md | ||
README.md
BINARY — AcBinary serializer
Reference documentation for the AcBinary serialization system. Primary goal: speed (two-phase scan+serialize, reference tracking, string interning).
Files in this folder
BINARY_FEATURES.md— High-level features and capabilitiesBINARY_FORMAT.md— Wire format specificationBINARY_OPTIONS.md— Configuration options (AcBinaryOptions)BINARY_IMPLEMENTATION.md— Internal implementation detailsBINARY_WRITERS.md— Writer internals (streaming, buffering)BINARY_SGEN.md— Source generator (AyCode.Core.Serializers.SourceGenerator)BINARY_ISSUES.md— Known issues and limitationsBINARY_TODO.md— Planned work / open tickets
Start here
For a first read-through, start with BINARY_FEATURES.md for the overview, then dive into BINARY_FORMAT.md for wire-level details. BINARY_SGEN.md explains how the code-gen integrates at build time.
Cross-references
- Serialization overview (Toon vs AcBinary vs AcJson, shared infrastructure):
../../Serializers/README.md - SignalR binary transport (uses this serializer):
../../AyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/README.md - Glossary terms:
../../../docs/GLOSSARY.md
Related ADRs
AyCode.Core/docs/adr/0003-acbinary-streaming-receive-architecture.md— AcBinary streaming receive — AsyncPipeReaderInput unified primitive and transport-agnostic helpers (Status: Proposed (2026-04-27)). Repo-level cross-cutting ADR establishing the receive-side streaming architecture and transport-agnostic helpers (NamedPipe + FileStream) for this serializer.AsyncPipeReaderInput(sealed class) consolidates today'sSegmentBufferReader+SegmentBufferReaderInputpair into a single self-contained primitive; theAsync-prefixed naming mirrors the existingAsyncPipeWriterOutputsend-side primitive. Implementation tracked acrossACCORE-BIN-T-D6H4/M2K1/V7C9/A3T8/B5Y6(Steps 1–5) inBINARY_TODO.mdandACCORE-SBP-T-G7T2(Step 6) inAyCode.Services/docs/SIGNALR_BINARY_PROTOCOL/SIGNALR_BINARY_PROTOCOL_TODO.md.