AyCode.Core/AyCode.Core
Loretta e7b12a1100 [LOADED_DOCS: 3 files, no new loads]
Switch to FlushPolicy enum for streaming flush control

Replaces the legacy bool waitForFlush with a new FlushPolicy enum (PerChunk, DoubleBuffered, Coalesced) across all binary streaming serialization APIs and SignalR protocol options. Updates all code, configuration, and documentation to use the new policy, clarifies memory/throughput trade-offs, and closes related TODOs. Stream-backed writers remain sequential; only parallel-capable Pipe-based writers honor the policy.
2026-05-03 08:13:59 +02:00
..
Compression Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Consts Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Enums Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Extensions Zero-copy SignalR: direct object response, no SignalData 2026-04-06 22:45:00 +02:00
Helpers Add segment streaming to SignalR binary protocol 2026-04-10 09:27:40 +02:00
Interfaces Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Loggers [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00
Properties Update defaults, docs, and internals for AcBinary serializer 2026-04-02 22:17:46 +02:00
Serializers [LOADED_DOCS: 3 files, no new loads] 2026-05-03 08:13:59 +02:00
docs [LOADED_DOCS: 3 files, no new loads] 2026-05-03 08:13:59 +02:00
AcDomain.cs IAcSoftRemoveEntity 2024-11-13 10:58:39 +01:00
AyCode.Core.csproj [LOADED_DOCS: 4 files, no new loads] 2026-04-24 21:54:04 +02:00
README.md Add structured metadata blocks to all project/repo docs 2026-03-30 08:53:56 +02:00

README.md

AyCode.Core

@project { type = "framework" }

Core library for the AyCode platform. Targets .NET 9 (set in AyCode.Core.targets). Provides serialization (Binary, JSON, Toon), compression, logging, validation, and shared utilities.

Documentation

Document Topic
BINARY_FORMAT.md Binary wire format spec (stream layout, type markers)
BINARY_FEATURES.md Binary features (interning, ref tracking, property ordering)
BINARY_OPTIONS.md Binary configuration options & presets
LOGGING.md Logging framework (hierarchy, config, ILogger bridge)

Folder Structure

Folder Purpose README
Compression/ Brotli, GZip, LZ4 compression (pure managed, WASM-compatible) README
Consts/ Project-wide constants, error codes, regex validation, environment config README
Enums/ Shared enums: AppType, MessageContextType, TrackingState README
Extensions/ Collection merge/sync, serialization extensions, utility extensions README
Helpers/ Token generation, observable collections, JSON utilities, password hashing, task helpers README
Interfaces/ Core interfaces: IId<T>, IForeignKey, IAcSerializableToJson README
Loggers/ Custom logging framework with MS.Extensions.Logging integration README
Serializers/ Serialization framework: Binary, JSON, Toon formats on shared infrastructure README

Root Files

  • AcDomain.cs — Singleton for process-level state: process name, build type detection (IsDeveloperVersion/IsProductVersion), processor count, thread-safe unique ID generators (NextUniqueInt32, NextUniqueInt64).

Dependencies

Dependency Purpose
AyCode.Utils Shared utilities (project reference)
AyCode.Core.Serializers.SourceGenerator Binary serializer source generation (analyzer)
AutoMapper Object mapping
MessagePack MessagePack serialization
Newtonsoft.Json JSON serialization (legacy, alongside System.Text.Json)
Microsoft.Extensions.Configuration.* appsettings.json + environment variable support
Microsoft.Extensions.Logging.Abstractions Logging abstractions