AyCode.Core/AyCode.Core/docs/BINARY
Loretta 73d81ea580 [LOADED_DOCS: 7 files, no new loads]
AcBinary: add framing doc, buffer growth fixes, doc updates

- Added `BINARY_WHYUSE.md` for architectural framing and value proposition
- Updated `BINARY_FEATURES.md` and `README.md` to reference and prioritize the new doc
- Documented AsyncPipeWriterOutput chunk-size limitation and workarounds in `BINARY_ASYNCPIPE_ISSUES.md`
- Refactored buffer growth logic in `AcBinarySerializer.BinarySerializationContext.cs` to validate capacity after grow and throw clear exceptions on under-provisioning; removed dead method
- Fixed chunk size alignment bug in `AsyncPipeWriterOutput.cs` to prevent buffer under-provisioning
- Added `AYCODE_NATIVEAOT` build config support in `Program.cs`
- Improved documentation clarity and error diagnostics for streaming/buffered serialization edge cases
2026-05-11 13:28:43 +02:00
..
BINARY_ASYNCPIPE_ISSUES.md [LOADED_DOCS: 7 files, no new loads] 2026-05-11 13:28:43 +02:00
BINARY_ASYNCPIPE_TODO.md [LOADED_DOCS: 3 files, no new loads] 2026-05-05 06:55:32 +02:00
BINARY_FEATURES.md [LOADED_DOCS: 7 files, no new loads] 2026-05-11 13:28:43 +02:00
BINARY_FORMAT.md [LOADED_DOCS: 2 files, no new loads] 2026-05-04 14:36:16 +02:00
BINARY_IMPLEMENTATION.md [LOADED_DOCS: 3 files, no new loads] 2026-05-01 14:01:23 +02:00
BINARY_ISSUES.md [LOADED_DOCS: 8 files, no new loads] 2026-05-07 09:52:10 +02:00
BINARY_OPTIONS.md [LOADED_DOCS: 3 files, no new loads] 2026-05-01 14:01:23 +02:00
BINARY_SGEN.md [LOADED_DOCS: 3 files, no new loads] 2026-05-01 14:01:23 +02:00
BINARY_TODO.md [LOADED_DOCS: 7 files, no new loads] 2026-05-11 13:28:43 +02:00
BINARY_WHYUSE.md [LOADED_DOCS: 7 files, no new loads] 2026-05-11 13:28:43 +02:00
BINARY_WRITERS.md [LOADED_DOCS: 3 files, no new loads] 2026-05-03 15:21:15 +02:00
README.md [LOADED_DOCS: 7 files, no new loads] 2026-05-11 13:28:43 +02:00

README.md

BINARY — AcBinary serializer

AcBinary serialization system. Primary goal: speed (two-phase scan+serialize, reference tracking, string interning).

Files in this folder

Start here

Start with BINARY_WHYUSE.md (architectural framing — why this serializer over the alternatives), then BINARY_FEATURES.md (feature overview), then BINARY_FORMAT.md (wire-level). BINARY_SGEN.md covers build-time code-gen integration.

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
  • ASP.NET Core MVC formatter (uses this serializer): ../../AyCode.Services/docs/MVC/README.md
  • Glossary terms: ../../../docs/GLOSSARY.md
  • AyCode.Core/docs/adr/0003-acbinary-streaming-receive-architecture.md — Receive-side streaming architecture (Status: Accepted 2026-05-03, partially executed). Delivered: SegmentBufferReader + SegmentBufferReaderInput consolidated into a single AsyncPipeReaderInput primitive (mirrors send-side AsyncPipeWriterOutput); SignalR receive-side migration completed. Dropped during execution: NamedPipe + FileStream helpers (Steps 4 & 5) — framework stays consumer-implements-transport, exposes only generic PipeWriter / PipeReader primitives.