AyCode.Core/AyCode.Core
Loretta fdff39c44b Add structured metadata blocks to all project/repo docs
Added standardized metadata blocks to the top of each project and repo documentation file. These blocks define project type, and for repos, include layer and dependencies, improving clarity and enabling better tooling support.
2026-03-30 08:53:56 +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 Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Helpers Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Interfaces Document AcBinary wire format, sync docs, update conventions 2026-03-29 09:11:57 +02:00
Loggers Update README links to use code-style paths for docs 2026-03-30 08:01:05 +02:00
Properties Improve property ordering, null handling, and string interning 2026-03-07 13:37:49 +01:00
Serializers Update doc links: use inline code, unify relative paths 2026-03-29 22:32:11 +02:00
docs Update doc links: use inline code, unify relative paths 2026-03-29 22:32:11 +02:00
AcDomain.cs IAcSoftRemoveEntity 2024-11-13 10:58:39 +01:00
AyCode.Core.csproj Refactor: Split and expand project-level documentation 2026-03-29 22:16:28 +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