CultLib/src/GameCult.Caching.MessagePack.Analyzers/README.md
Meta Vens 0bfc85a4f2 JSON backing store, I/O fixes, Networking Security
Introduced Newtonsoft.Json-backed persistence.
Improved backing-store reliability and serialization across the caching stack.
Improved networking security posture.

Key changes:
- Add new GameCult.Caching.NewtonsoftJson project with SingleFile/MultiFile backing stores and polymorphic known-type envelopes.
- Add MessagePack helper serialization (DatabaseEntrySerialization) and update MessagePack backing stores to use the shared options/resolver; add DatabaseLink formatter and generator/analyzer docs.
- Update CultLib.sln to include the new projects and new caching tests project.
- Improve CultCache persistence behavior: track pending store operations, wait for operations on PullAll, and centralize async push handling with error logging.
- Harden file I/O in multi-file/single-file stores: atomic temp-file writes, safe Replace/Move semantics, rename-safe deletes, and improved file-watcher subscription and debounce disposal.
- Add README files and documentation for several subprojects and packaging projects.

These changes add JSON persistence support, improve serialization consistency, and make on-disk operations more robust and observable.
2026-04-18 13:01:24 +01:00

1,004 B

GameCult.Caching.MessagePack.Analyzers

GameCult.Caching.MessagePack.Analyzers is the delivery mechanism for the MessagePack source generator used by the cache libraries.

Scope

This project is primarily packaging infrastructure. It exists so consuming projects can receive generator output at compile time without treating the generator assembly as a normal runtime dependency.

What It Does

  • references the generator project
  • arranges for the generator assembly to be packed under analyzers/dotnet/cs
  • keeps generator assets out of the normal compile/runtime reference flow

Practical Meaning

When a consuming project adds the analyzer package:

  • the generator runs during compilation
  • concrete DatabaseEntry types receive generated MessagePack formatters
  • GameCult.Caching.MessagePack can then serialize those types without handwritten formatter code

Current State

This project is a packaging host. It does not currently expose custom analyzer diagnostics of its own.