AyCode.Core/AyCode.Core
Loretta 05808d0d13 SignalR: Add raw byte[] fast-path for DataSource GetAll
Implements a high-performance raw byte[] protocol path for SignalR DataSource GetAll/LoadDataSource, using a new IsRawBytesData flag in SignalParams. When enabled, the server pre-serializes response data and sends it as a byte array, which the protocol passes through without further (de)serialization. The client receives the raw bytes and deserializes as needed, avoiding double serialization/deserialization and improving performance for large payloads.

Adds SerializerType selection to DataSource, propagates SignalParams through hub and protocol layers, and updates client/server/test code to support the new path. Also includes diagnostics flags for binary serialization debugging and fixes for multi-segment buffer handling.
2026-04-07 00:20:52 +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 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 Update defaults, docs, and internals for AcBinary serializer 2026-04-02 22:17:46 +02:00
Serializers SignalR: Add raw byte[] fast-path for DataSource GetAll 2026-04-07 00:20:52 +02:00
docs Optimize serialization lookups; add SignalR binary toggle 2026-04-04 23:22:47 +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