Appearance
API Index (Full)
This document lists all public types (~1000 lines) in ActualLab.Fusion NuGet packages, organized by assembly and namespace.
ActualLab.Core
ActualLab
ICanBeNone<out TSelf>, CanBeNoneExt
Strongly typed version of ICanBeNone that exposes a static None value.
IHasId<out TId>
An interface that indicates its implementor has an identifier of type TId.
IHasUuid
Similar to IHasId<TId>, but indicates the Id is universally unique.
IResult, IResult<T>
Untyped and strongly typed contracts for a computation result that contains either a value or an error.
IMutableResult, IMutableResult<T>
Untyped and strongly typed computation-result contracts whose value or error can be changed.
INotLogged
A tagging interface for commands and other objects that shouldn't be logged on use / execution.
IRequirementTarget
A tagging interface that tags types supported by RequireExt type.
AssumeValid (struct)
A unit-type constructor parameter indicating that no validation is required.
ClosedDisposable<TState> (struct)
A lightweight disposable struct that captures state and invokes a dispose action over it.
Disposable<T> (struct)
A lightweight disposable struct wrapping a resource and its dispose action.
Generate (struct)
A unit-type constructor parameter indicating that a new identifier should be generated.
HostId (record)
Represents a unique identifier for a host, auto-generated with a machine-prefixed value.
LazySlim<TValue>
A lightweight alternative to Lazy<T> with double-check locking.
ParseOrNone (struct)
A unit-type constructor parameter indicating a parse-or-return-none semantic.
Requirement (record)
Base class for Requirement<T> that validate values and produce errors on failure.
Result (struct), Result<T> (struct), ResultExt
Untyped and strongly typed value-or-error results and their helper methods.
ServiceException
A base exception type for service-level errors.
IOption, Option<T> (struct)
Represents an optional value that can be either Some or None.
Option
Helper methods related to Option<T> type.
StaticLog
Provides globally accessible ILogger instances via a shared ILoggerFactory.
ExceptionExt
Extension methods for Exception type and its descendants.
KeyValuePairExt
Extension methods and helpers for KeyValuePair<TKey, TValue>.
RequireExt
Extension methods for applying Requirement<T> checks to values and tasks.
StringExt
Extension methods for string.
ActualLab.Api
ApiList<T>
A serializable list intended for use in API contracts.
ApiMap<TKey, TValue>
A serializable dictionary with sorted enumeration, intended for use in API contracts.
ApiSet<T>
A serializable hash set with sorted enumeration, intended for use in API contracts.
ApiArray
Factory methods for creating ApiArray<T> instances.
ApiNullable, ApiNullable8, ApiNullableExt
Factory methods for creating ApiNullable<T> instances.
ApiOption
Factory methods for creating ApiOption<T> instances.
ApiCollectionExt
Extension methods for converting collections to Api collection types.
ActualLab.Async
IWorker, WorkerBase, WorkerExt
Defines the contract for a long-running background worker that can be started and stopped.
TaskResultKind (enum)
Defines the possible result states of a task.
AsyncDisposableBase, AsyncDisposable<TState> (struct)
A template from https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-disposeasync
ProcessorBase
Base class for async processors with built-in disposal and stop token support.
SafeAsyncDisposableBase
A safer version of https://docs.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-disposeasync that ensures DisposeAsync(bool) is called just once.
TaskCompletionHandler
A pooled helper for attaching completion callbacks to tasks. Each instance caches its delegate, and instances are pooled to minimize allocations.
AsyncChain (record struct), AsyncChainExt
A named async operation that can be composed, retried, logged, and run with cancellation.
AsyncState<T>
A linked-list node representing an async state that transitions to the next value.
BatchProcessor<T, TResult>
Processes items in batches using a dynamically-scaled pool of worker tasks.
BatchProcessorWorkerPolicy (record)
Default implementation of IBatchProcessorWorkerPolicy with configurable scaling thresholds.
Temporary<T> (record struct)
Wraps a value together with a CancellationToken indicating when the value is gone.
AsyncEnumerableExt
Extension methods for IAsyncEnumerable<T>.
AsyncTaskMethodBuilderExt
Extension methods for AsyncTaskMethodBuilder<TResult> and AsyncTaskMethodBuilder.
CancellationTokenExt
Extension methods for CancellationToken.
CancellationTokenSourceExt
Extension methods for CancellationTokenSource.
ExecutionContextExt
Extension methods and helpers for ExecutionContext.
SemaphoreSlimExt
Extension methods for SemaphoreSlim.
TaskExt
Extension methods and helpers for Task and Task<TResult>.
TaskCompletionSourceExt
Extension methods for TaskCompletionSource<TResult>.
ValueTaskExt
Extension methods and helpers for ValueTask and ValueTask<TResult>.
ActualLab.Caching
IAsyncCache<in TKey, TValue>, AsyncCacheBase<TKey, TValue>
Defines the contract for an async key-value cache that supports set and remove operations.
IAsyncKeyResolver<in TKey, TValue>
Defines the contract for asynchronously resolving values by key.
AsyncKeyResolverBase<TKey, TValue>, AsyncKeyResolverExt
Base class for async key resolvers implementing IAsyncKeyResolver<TKey, TValue>.
FileSystemCacheBase<TKey, TValue>, FileSystemCache<TKey, TValue>
Base class for file system-backed caches with atomic read/write operations.
GenericInstanceFactory
Base class for factories that produce instances cached by GenericInstanceCache.
EmptyCache<TKey, TValue>
A no-op cache implementation that never stores or returns values.
MemoizingCache<TKey, TValue>
An in-memory cache backed by a ConcurrentDictionary<TKey, TValue>.
RefHolder
Holds strong references to objects to prevent garbage collection, with concurrent access support.
VoidSurrogate (record struct)
This type is used by GenericInstanceCache class to substitute void types.
GenericInstanceCache
Thread-safe cache for instances produced by GenericInstanceFactory subclasses.
CacheExt
Extension methods for IAsyncKeyResolver<TKey, TValue>.
ActualLab.Channels
ChannelCopyMode (enum)
Defines which channel state transitions to propagate when copying between channels.
ChannelPair<T>
Holds a pair of related channels, optionally with twisted (cross-wired) reader/writer connections.
CustomChannel<TWrite, TRead>
A channel composed from an explicit reader and writer pair.
CustomChannelWithId<TId, TWrite, TRead>
A CustomChannel<TWrite, TRead> with an associated identifier.
EmptyChannel<T>
A channel that is immediately completed and produces no items.
NullChannel<T>
A channel that discards all writes and never produces items on reads.
UnbufferedPushSequence<T>
An unbuffered push-based async sequence that allows a single enumerator and synchronous push.
ChannelExt
Extension methods for Channel<T> and related types.
ActualLab.Collections
IReadOnlyMutableDictionary<TKey, TValue>
A read-only view of a thread-safe mutable dictionary backed by an ImmutableDictionary<TKey, TValue>.
IReadOnlyMutableList<T>
A read-only view of a thread-safe mutable list backed by an ImmutableList<T>.
ArrayBuffer<T> (struct)
A list-like struct backed by ArrayPool<T> that typically requires zero allocations. Designed for use as a temporary buffer in enumeration scenarios.
ArrayOwner<T>
Wraps a pooled array as an IMemoryOwner<T>, returning the array to the pool on disposal.
ArrayPoolBuffer<T>
A resizable buffer backed by ArrayPool<T> that implements IBufferWriter<T> and provides list-like operations.
BinaryHeap<TPriority, TValue>
A min-heap data structure that stores priority-value pairs and supports efficient extraction of the minimum element.
FenwickTree<T>
A Fenwick tree (binary indexed tree) for efficient prefix sum queries and point updates over an array of elements.
ImmutableBimap<TFrom, TTo> (record)
An immutable bidirectional map (bimap) that maintains both forward and backward lookup dictionaries between two key types.
MutableDictionary<TKey, TValue>
Default implementation of IMutableDictionary<TKey, TValue> that wraps an ImmutableDictionary<TKey, TValue> with lock-based thread safety.
MutableList<T>
Default implementation of IMutableList<T> that wraps an ImmutableList<T> with lock-based thread safety.
MutablePropertyBag
A thread-safe mutable property bag backed by an immutable PropertyBag with atomic update operations and change notifications.
OptionSet
A thread-safe mutable set of named options. Consider using MutablePropertyBag instead.
RadixHeapSet<T>
A radix heap with set semantics, providing efficient monotone priority queue operations using integer priorities. Each value can appear at most once.
RecentlySeenMap<TKey, TValue>
A capacity- and time-bounded map that evicts the oldest entries when the capacity is exceeded or entries have expired.
RefArrayPoolBuffer<T> (struct)
A ref struct version of ArrayPoolBuffer<T> that avoids heap allocations. Use Release() instead of Dispose().
RingBuffer<T> (struct)
A fixed-capacity circular buffer that supports efficient push/pull operations at both head and tail. Capacity must be a power of two minus one.
VersionSet (record)
An immutable, serializable set of scoped Version values, stored as a comma-separated string of scope=version pairs.
ArrayPools
Provides static references to commonly used ArrayPool<T> instances.
ArrayExt
Extension methods for arrays.
BufferWriterExt
Extension methods for IBufferWriter<T>.
CollectionExt
Extension methods for ICollection<T>.
ConcurrentDictionaryExt
Extension methods for ConcurrentDictionary<TKey, TValue>, including lazy value initialization and atomic increment/decrement operations.
EnumerableExt
Extension methods for IEnumerable<T>.
ImmutableDictionaryExt
Extension methods for ImmutableDictionary<TKey, TValue>.
MemoryExt
Extension methods for ReadOnlyMemory<T> and Memory<T>.
PropertyBagExt
Extension methods for PropertyBag and MutablePropertyBag.
ReadOnlyListExt
Extension methods for IReadOnlyList<T>.
SpanExt
Extension methods for Span<T> and ReadOnlySpan<T>, providing unchecked read/write and variable-length integer encoding operations.
SpanLikeExt
Extension methods for span-like types (arrays, spans, immutable arrays, and read-only lists) providing safe element access.
ActualLab.Collections.Fixed
FixedArray0<T> .. FixedArray16<T> (struct)
A fixed-size inline array of N elements, stored on the stack via sequential layout.
ActualLab.Collections.Slim
IHashSetSlim<T>, HashSetSlim1<T> .. HashSetSlim4<T> (struct)
A compact hash set interface optimized for small item counts, storing items inline before falling back to a full HashSet<T>.
IRefHashSetSlim<T>, RefHashSetSlim1<T> .. RefHashSetSlim4<T> (struct)
A compact hash set interface for reference types, optimized for small item counts using reference equality before falling back to a full HashSet<T>.
ReferenceEqualityComparer<T>
An IEqualityComparer<T> that compares reference type instances by reference identity rather than value equality.
SafeHashSetSlim1<T> .. SafeHashSetSlim4<T> (struct)
A thread-safe compact IHashSetSlim<T> that stores up to N items inline before falling back to an ImmutableHashSet<T>.
Aggregator<TState, in TArg> (delegate)
A delegate that aggregates a single argument into a mutable state by reference.
ActualLab.Comparison
ByRef<T> (struct)
A wrapper that uses reference equality for comparisons instead of value equality.
HasIdEqualityComparer<T>
An equality comparer for IHasId<TId> that compares by Id.
VersionExt
Extension methods and helpers for Version.
ActualLab.Concurrency
IHasTaskFactory
Indicates the implementing type exposes a TaskFactory for scheduling work.
ConcurrentPool<T>
A thread-safe object pool backed by a ConcurrentQueue<T> and a StochasticCounter for approximate size tracking.
DedicatedThreadScheduler
A TaskScheduler that executes tasks sequentially on a single dedicated thread.
StochasticCounter (struct)
A probabilistic counter that increments or decrements atomically with a configurable sampling precision, reducing contention on hot paths.
InterlockedExt
Extension methods for Interlocked providing atomic compare-and-swap patterns.
ActualLab.Conversion
IConvertibleTo<out TTarget>
An interface that indicates its implementor can be converted to type TTarget.
Converter<TSource>, ConverterProvider, ConverterExt
A Converter that knows its source type at compile time.
SourceConverterProvider<TSource>
Abstract base implementation of ISourceConverterProvider<TSource>.
BiConverter<TFrom, TTo> (record struct)
A bidirectional converter that provides both forward and backward conversion functions.
ServiceCollectionExt
Extension methods for IServiceCollection to register converters.
ServiceProviderExt
Extension methods for IServiceProvider to access converters.
ActualLab.DependencyInjection
IHasDisposeStatus
Indicates a type that exposes its disposal status.
IHasInitialize
Indicates a type that supports post-construction initialization with optional settings.
IHasServices
Indicates a type that exposes an IServiceProvider instance.
IHasWhenDisposed, HasWhenDisposedExt
Extends IHasDisposeStatus with a task that completes upon disposal.
HostedServiceSet
Manages a group of IHostedService-s as a whole allowing to start or stop all of them.
ServiceResolver
Encapsulates a service type and an optional custom resolver function for resolving services from an IServiceProvider.
ServiceConstructorAttribute
Marks a constructor as the preferred constructor for DI service activation.
TestServiceProviderTag
A marker class registered in DI containers to indicate that the service provider is used in a test environment.
ConfigurationExt
Extension methods for IConfiguration to bind and validate settings.
ServiceCollectionExt
Extension methods for IServiceCollection.
ServiceDescriptorExt
Extension methods for ServiceDescriptor.
ServiceProviderExt
Extension methods for IServiceProvider.
ServiceResolverExt
Extension methods for ServiceResolver.
ActualLab.Diagnostics
INotAnError
A marker interface for exceptions that should not be treated as errors in diagnostics and activity tracking.
Sampler (record)
A probabilistic sampler that decides whether to include or skip events based on configurable strategies (random, every-Nth, etc.).
CodeLocation
Provides methods for formatting source code locations (file, member, line) into human-readable strings for diagnostics.
ActivityExt
Extension methods for Activity to finalize activities with error status and handle disposal safely.
ActivityContextExt
Extension methods for ActivityContext to format W3C trace context headers.
ActivitySourceExt
Extension methods for ActivitySource.
AssemblyExt
Extension methods for Assembly to retrieve informational version.
DiagnosticsExt
Utility methods for sanitizing metric and diagnostics names.
LoggerExt
Extension methods for ILogger to check enabled log levels.
TypeExt
Extension methods for Type to construct diagnostics operation names.
ActualLab.Generators
ConcurrentGenerator<T>
A thread-safe Generator<T> that uses striped generation to reduce contention in concurrent scenarios.
Generator<T>
Abstract base class for value generators that produce a sequence of values.
UuidGenerator
Abstract base for generators that produce UUID strings.
GuidUuidGenerator
A UuidGenerator that produces Guid-based UUID strings.
ProxyGenerator
An incremental source generator that creates proxy classes for types implementing IRequiresAsyncProxy or IRequiresFullProxy interfaces.
ProxyTypeGenerator
Generates a proxy class for a single type declaration, producing interceptor-based method overrides and module initializer registration code.
RandomInt32Generator
A thread-safe generator that produces cryptographically random int values.
RandomInt64Generator
A thread-safe generator that produces cryptographically random long values.
RandomStringGenerator
A thread-safe generator that produces random strings from a configurable alphabet using cryptographic randomness.
SequentialInt32Generator
A thread-safe generator that produces sequentially incrementing int values.
SequentialInt64Generator
A thread-safe generator that produces sequentially incrementing long values.
TransformingGenerator<TIn, TOut>
A Generator<T> that transforms the output of another generator using a provided function.
UlidUuidGenerator
A UuidGenerator that produces ULID-based UUID strings.
ConcurrentInt32Generator
Factory for creating striped concurrent int generators that reduce contention via multiple independent sequences.
ConcurrentInt64Generator
Factory for creating striped concurrent long generators that reduce contention via multiple independent sequences.
RandomShared
Provides thread-safe access to shared random number generation, wrapping Random.Shared on .NET 6+ or a thread-local Random fallback.
ActualLab.IO
ConsoleExt
Extension methods for Console providing asynchronous console I/O.
FileExt
Helper methods for reading and writing text files with configurable encoding.
FilePathExt
Extension methods for FilePath providing file/directory enumeration and text I/O.
FileSystemWatcherExt
Extension methods for FileSystemWatcher providing reactive and async event access.
ActualLab.Locking
IAsyncLockReleaser
Defines the contract for releasing an acquired async lock.
LockReentryMode (enum)
Defines lock reentry behavior modes for async locks.
AsyncLock
A semaphore-based async lock with optional reentry detection.
AsyncLockSet<TKey>
A keyed async lock set that allows locking on individual keys with optional reentry detection.
FileLock
An IAsyncLock<TReleaser> implementation that uses a file system lock.
SimpleAsyncLock
A lightweight async lock without reentry detection support.
SemaphoreSlimExt
Extension methods for SemaphoreSlim.
ActualLab.Mathematics
PrimeSieve
A sieve of Eratosthenes implementation for computing and querying prime numbers.
Bits
Provides bit manipulation utilities such as population count, leading/trailing zero count, and power-of-2 operations.
Combinatorics
Provides combinatorial utilities including subset enumeration and combinations.
GuidExt
Extension methods for Guid providing formatting and conversion utilities.
MathExt
Extended math utilities including clamping, GCD/LCM, factorial, and arbitrary-radix number formatting/parsing.
ActualLab.Net
Connector<TConnection>
Manages a persistent connection of type TConnection with automatic reconnection and retry delay support.
RetryDelay (record struct)
Represents a computed retry delay including the delay task and when it ends.
RetryDelayLogger (record struct)
Logs retry delay events such as errors, delays, and limit exceeded conditions.
RetryDelayer, RetryDelayerExt
Default IRetryDelayer implementation with configurable delay sequences and retry limits.
ActualLab.OS
OSKind (enum)
Defines operating system kind values.
HardwareInfo
Provides cached information about the hardware, such as processor count.
OSInfo
Provides static information about the current operating system.
RuntimeInfo
Provides runtime environment information such as server/client mode and process identity.
ActualLab.Pooling
IPool<T>
Defines the contract for a pool that rents and releases resources of type T.
IResourceReleaser<in T>
Defines the contract for returning a resource of type T back to its pool.
Owned<TItem, TOwner> (struct)
Pairs an item with its disposable owner, disposing the owner on release.
ResourceLease<T> (struct)
A struct-based IResourceLease<T> that releases the resource back to the releaser on disposal.
ActualLab.Reflection
RuntimeCodegenMode (enum)
Defines runtime code generation strategy values.
MemberwiseCopier (record)
Copies property and field values from one instance to another using reflection.
MemberwiseCloner
Provides a fast delegate-based invocation of MemberwiseClone.
RuntimeCodegen
Detects and controls the runtime code generation mode (dynamic methods vs. expression trees).
TypeNameHelpers
Helpers for parsing and formatting assembly-qualified type names.
ActivatorExt
Extension methods for creating instances via cached constructor delegates, supporting both dynamic methods and expression tree codegen.
DelegateExt
Provides typed invocation-list helpers for delegates.
ExpressionExt
Extension methods for Expression providing conversion and member access helpers.
FuncExt
Provides helpers for constructing generic Action and Func<TResult> delegate types at runtime.
ILGeneratorExt
Extension methods for ILGenerator providing casting helpers.
MemberInfoExt
Extension methods for MemberInfo providing cached getter/setter delegate creation for properties and fields.
MethodInfoExt
Extension methods for MethodInfo providing attribute lookup with interface and base type inheritance.
TypeExt
Extension methods for Type providing name formatting, base type enumeration, proxy resolution, and task type detection.
ActualLab.Requirements
CustomizableRequirement (record), CustomizableRequirementBase (record)
A Requirement<T> wrapper that delegates satisfaction checks to a base requirement and uses a customizable ExceptionBuilder for errors.
FuncRequirement (record)
A requirement that uses a delegate function for its satisfaction check.
JointRequirement (record)
A composite requirement that is satisfied only when both its primary and secondary requirements are satisfied.
MustExistRequirement (record)
A requirement that checks a value is not null or default.
ExceptionBuilder (record struct)
Builds exceptions for requirement validation failures using configurable message templates and exception factories.
ActualLab.Resilience
IHasTimeout
Defines the contract for objects that have an optional timeout.
ISuperTransientException
A tagging interface for any exception that has to be "cured" by retrying the operation.
Transiency (enum), TransiencyResolver<TContext> (delegate), TransiencyExt
Defines error transiency classification values.
ChaosMaker (record)
Abstract base for chaos engineering makers that inject faults (delays, errors) into operations for resilience testing.
RetryLimitExceededException
Thrown when the maximum number of retry attempts has been exceeded.
RetryLogger (record)
Logs retry-related events such as failed attempts and retry delays.
RetryPolicy (record), RetryPolicyExt
Default IRetryPolicy implementation with configurable try count, per-try timeout, delay sequence, and transiency-based filtering.
RetryPolicyTimeoutException
Thrown when a single retry attempt exceeds its configured timeout.
RetryRequiredException
A super-transient exception indicating that a retry is required unconditionally.
TerminalException
Base exception class for terminal errors that indicate unrecoverable failure.
TransientException
Base exception class for transient errors that may succeed on retry.
ExceptionFilter (delegate), ExceptionFilterExt
A delegate that determines whether an exception matches a given transiency filter.
ExceptionFilters
Provides common ExceptionFilter instances for transient, non-transient, terminal, and unconditional matching.
TransiencyResolvers
Abstract base class for TransiencyResolver-s.
ExceptionExt
Extension methods for Exception related to resilience and service provider disposal detection.
ServiceCollectionExt
Extension methods for IServiceCollection to register TransiencyResolver<TContext> instances.
ServiceProviderExt
Extension methods for IServiceProvider to resolve TransiencyResolver instances.
TransiencyResolverExt
Extension methods for TransiencyResolver.
ActualLab.Scalability
HashRing<T>
A consistent hash ring that maps hash values to a sorted ring of nodes.
ShardMap<TNode>
Maps a fixed number of shards to a set of nodes using a configurable ShardMapBuilder.
ShardMapBuilder (abstract record)
Builds shard-to-node index maps using a selectable sharding strategy.
ActualLab.Serialization
IHasToStringProducingJson
Indicates that type's ToString() can be deserialized with System.Text.Json / JSON.NET deserializers.
IProjectingByteSerializer<T>
A serializer that allows projection of parts from source on reads.
DataFormat (enum)
Defines whether data is stored as raw bytes or as text.
SerializerKind (enum), SerializerKindExt
Defines the available serializer implementations.
IBox, Box<T> (record), Box
A read-only boxed value, its serializable immutable implementation, and factory methods.
ByteSerialized<T>
A wrapper that auto-serializes its Value to a byte array on access via IByteSerializer.
JsonString
A string wrapper representing a raw JSON value with proper serialization support.
LegacyTypeDecoratingTextSerializer
A legacy variant of TypeDecoratingTextSerializer that uses list-format type decoration.
MemoryPackByteSerializer<T>
A typed MemoryPackByteSerializer that serializes values of type T.
MemoryPackSerialized<T>
A ByteSerialized<T> variant that uses MemoryPackByteSerializer for serialization.
MessagePackByteSerializer<T>
A typed MessagePackByteSerializer that serializes values of type T.
MessagePackSerialized<T>
A ByteSerialized<T> variant that uses MessagePackByteSerializer for serialization.
IMutableBox, MutableBox<T>, MutableBox
A mutable boxed value, its serializable implementation, and factory methods.
NewtonsoftJsonSerialized<T>
A TextSerialized<T> variant that uses NewtonsoftJsonSerializer for serialization.
NewtonsoftJsonSerializer
An ITextSerializer implementation backed by Newtonsoft.Json (JSON.NET).
RemoteException
Represents an exception that was serialized from a remote service and reconstructed from ExceptionInfo.
SystemJsonSerialized<T>
A TextSerialized<T> variant that uses SystemJsonSerializer for serialization.
SystemJsonSerializer
An ITextSerializer implementation backed by System.Text.Json.
TextSerialized<T>
A wrapper that auto-serializes its Value to a string on access via ITextSerializer.
TypeDecoratingByteSerializer
An IByteSerializer decorator that prefixes serialized data with type information.
TypeDecoratingMemoryPackSerialized<T>
A ByteSerialized<T> variant that uses type-decorating MemoryPack serialization.
TypeDecoratingMessagePackSerialized<T>
A ByteSerialized<T> variant that uses type-decorating MessagePack serialization.
TypeDecoratingNewtonsoftJsonSerialized<T>
A TextSerialized<T> variant that uses type-decorating Newtonsoft.Json serialization.
TypeDecoratingSystemJsonSerialized<T>
A TextSerialized<T> variant that uses type-decorating System.Text.Json serialization.
TypeDecoratingTextSerializer
An ITextSerializer decorator that prefixes serialized data with type information.
ByteSerializer<T>, ByteSerializerExt
Provides static access to the default typed IByteSerializer<T> and factory methods.
TextSerializer<T>, TextSerializerExt
Provides static access to the default typed ITextSerializer<T> and factory methods.
TypeDecoratingUniSerialized
Factory methods for TypeDecoratingUniSerialized<T>.
UniSerialized
Factory methods for UniSerialized<T>.
ExceptionInfoExt
Extension methods for converting Exception to ExceptionInfo.
ActualLab.Text
ListFormat (struct)
Defines a list format with a delimiter and escape character for serializing and parsing lists of strings.
ListFormatter (struct)
A ref struct that formats a sequence of strings into a delimited list using ListFormat.
ListParser (struct)
A ref struct that parses a delimited string into individual items using ListFormat.
ReflectionFormatProvider
An IFormatProvider that resolves format placeholders by reflecting on the argument's properties.
StringAsSymbolMemoryPackFormatterAttribute
Attribute that applies StringAsSymbolMemoryPackFormatter to a string field or property for MemoryPack serialization.
Base64UrlEncoder
Encodes and decodes byte data using the URL-safe Base64 variant (RFC 4648).
JsonFormatter
Provides a simple helper for formatting objects as pretty-printed JSON strings.
ByteSpanExt
Extension methods for byte spans providing hex string conversion and XxHash3 hashing.
ByteStringExt
Extension methods for converting byte arrays and memory to ByteString.
CharSpanExt
Extension methods for computing XxHash3 hashes over character spans.
DecoderExt
Extension methods for Decoder.
EncoderExt
Extension methods for Encoder.
EncodingExt
Provides commonly used Encoding instances.
StringExt
Extension methods for string providing hashing and suffix trimming.
StringBuilderExt
Provides thread-local pooling for StringBuilder instances via Acquire/Release pattern.
ActualLab.Time
IGenericTimeoutHandler
Defines a handler that is invoked when a timeout fires.
MomentClock
Abstract base class for clocks that produce Moment timestamps and support time conversion and delay operations.
CoarseSystemClock
A MomentClock that returns a periodically updated time value via CoarseClockHelper, trading precision for lower read overhead.
ConcurrentFixedTimerSet<TItem>, ConcurrentFixedTimerSetOptions (record)
A concurrent, sharded version of FixedTimerSet<TItem> that reduces lock contention by distributing items across multiple internal timer sets.
ConcurrentTimerSet<TTimer>, ConcurrentTimerSetOptions (record)
A concurrent, sharded version of TimerSet<TTimer> that reduces lock contention by distributing timers across multiple internal timer sets.
CpuClock
A MomentClock based on a high-resolution Stopwatch, providing monotonically increasing timestamps that do not drift with system clock adjustments.
FixedTimerSet<TItem>, FixedTimerSetOptions (record)
Similar to TimerSet<TTimer>, but the fire interval is the same for every added item. Internally uses a FIFO queue of (dueAt, item) pairs.
GenericTimeoutSlot (record struct)
Pairs an IGenericTimeoutHandler with an argument for use in timer sets.
MomentClockSet
A set of related MomentClock instances (system, CPU, server, coarse) used as a single dependency for services that need multiple clock types.
RetryDelaySeq (record)
Defines a retry delay sequence with support for fixed and exponential backoff strategies, including configurable jitter spread.
ServerClock
A MomentClock that applies a configurable offset to a base clock, typically used to approximate server time from the client.
SystemClock
A MomentClock that returns the current UTC time via UtcNow.
TickSource
Provides a shared, coalesced timer tick that multiple consumers can await, reducing the number of individual timers.
TimerSet<TTimer>, TimerSetOptions (record)
A priority-based timer set backed by a radix heap, supporting add, update, and remove operations with quantized time resolution.
Intervals
Factory methods for creating fixed and exponential delay sequences.
Timeouts
Provides shared, application-wide ConcurrentTimerSet<TTimer> instances for keep-alive and generic timeout management.
ClockExt
Extension methods for MomentClock providing delay, timer, and interval operations.
DateTimeExt
Extension methods for DateTime providing Moment conversion and default kind assignment.
DateTimeOffsetExt
Extension methods for DateTimeOffset providing Moment conversion.
MomentExt
Extension methods for Moment providing null/default conversions and clock-based time conversion.
ServiceProviderExt
Extension methods for IServiceProvider to resolve MomentClockSet.
TimeSpanExt
Extension methods for TimeSpan providing clamping, random jitter, and human-readable short string formatting.
ActualLab.Time.Testing
TestClock, TestClockSettings
A MomentClock for testing that supports time offsetting, scaling, and on-the-fly settings changes with proper delay recalculation.
UnusableClock
A MomentClock that throws on every operation, used as a placeholder when no real clock should be used.
ActualLab.Versioning
IHasVersion<out TVersion>
Indicates that the implementing type exposes a version property.
KeyConflictStrategy (enum)
Defines strategies for handling key conflicts during entity insertion.
VersionGenerator<TVersion>
Abstract base class for generating new versions from the current Version.
VersionMismatchException
Exception thrown when a version does not match the expected version.
KeyConflictResolver<TEntity> (delegate)
A delegate that resolves a key conflict between a new entity and an existing one.
VersionChecker
Provides helpers to check whether a version matches an expected version.
LongExt
Extension methods for formatting long and ulong values as compact base-32 version strings.
ServiceProviderExt
Extension methods for IServiceProvider to resolve versioning services.
ClockBasedVersionGenerator
A VersionGenerator<long> that generates monotonically increasing long versions based on MomentClock ticks.
CpuTimestampBasedVersionGenerator
A VersionGenerator<long> that generates monotonically increasing long versions based on CpuTimestamp ticks.
ActualLab.Trimming
CodeKeeper
Static utility that preserves types, metadata, and generic native code needed through reflection or dynamic dispatch in trimmed and NativeAOT applications.
ActualLab.Interception
ActualLab.Interception
INotifyInitialized
Defines a callback invoked when a proxy is fully initialized.
IProxy, ProxyExt
Represents a proxy object that can have an Interceptor assigned to it.
IRequiresAsyncProxy, RequiresAsyncProxyExt
A tagging interface indicating that the implementing type requires an async proxy.
IRequiresFullProxy
A tagging interface indicating that the implementing type requires a full proxy supporting both sync and async method interception.
ArgumentListReader
Abstract visitor for reading items from an ArgumentList.
ArgumentListWriter
Abstract visitor for writing items into an ArgumentList.
Interceptor, InterceptorExt
Base class for method interceptors that handle proxy method calls and dispatch them to typed or untyped handlers.
ArgumentList (record), ArgumentList0 .. ArgumentList10 (record)
An immutable list of arguments for an intercepted method call, supporting typed access, serialization, and dynamic invoker generation.
ArgumentListG1<T0> .. ArgumentListG10<T0, T1, T2, T3> (record)
A generic ArgumentList with N arguments.
ArgumentListS1 .. ArgumentListS10 (record)
A non-generic (simple) ArgumentList with N arguments stored as objects.
ArgumentListType
Describes the type structure of an ArgumentList, including item types, generic/simple partitioning, and a factory for creating instances.
Invocation (struct), InvocationExt
Describes a single intercepted method invocation, including the proxy, method, arguments, and the delegate to the original implementation.
MethodDef
Describes an intercepted method, including its return type, parameters, async method detection, and invoker delegates.
ProxyIgnoreAttribute
Marks a method to be ignored by the proxy interceptor.
Proxies
Provides methods for creating proxy instances and resolving generated proxy types for IRequiresAsyncProxy base types.
ServiceCollectionExt
Extension methods for IServiceCollection to register typed factories.
ServiceProviderExt
Extension methods for IServiceProvider related to proxy activation.
ActualLab.Interception.Interceptors
SchedulingInterceptor
An interceptor that schedules async method invocations via a TaskFactory resolved from the proxy instance.
ScopedServiceInterceptor
An interceptor that resolves a scoped service for each method call and invokes the method on that scoped instance.
TypedFactoryInterceptor
An interceptor that resolves service instances via dependency injection, enabling typed factory interfaces to create objects through ActivatorUtilities.
ActualLab.Interception.Trimming
ArgumentListCodeKeeper
Retains ArgumentList-related code needed for .NET trimming scenarios.
ProxyCodeKeeper
Retains proxy-related code and metadata needed for .NET trimming scenarios.
ActualLab.Rpc
ActualLab.Rpc
IBackendService
This interface indicates that a certain service is available only on backend.
IRpcMiddleware
Defines a middleware that can intercept and transform inbound RPC call processing.
IRpcService, RpcServiceBuilder
Marker interface for services that can be invoked via RPC.
RpcLocalExecutionMode (enum), RpcLocalExecutionModeExt
Local execution mode for Distributed RPC service methods. Non-distributed RPC servers (services exposed via RPC) don't use call routing and ignore the value of this enum.
RpcMethodKind (enum)
Defines the kind of an RPC method (system, query, command, or other).
RpcPeerConnectionKind (enum), RpcPeerConnectionKindExt
Defines the kind of connection used by an RPC peer (remote, loopback, local, or none).
RpcPeerStopMode (enum), RpcPeerStopModeExt
Defines how inbound calls are handled when an RPC peer is stopping.
RpcDelayedCallAction (enum)
Flags controlling how delayed outbound RPC calls are handled.
RpcRemoteExecutionMode (enum)
Controls outbound RPC call behavior for connection waiting, reconnection, and resending.
RpcServiceMode (enum), RpcServiceModeExt
Defines how an RPC service is registered and accessed (local, server, client, or distributed).
RpcSystemMethodKind (enum), RpcSystemMethodKindExt
Defines the kind of a system RPC method (Ok, Error, Cancel, streaming, etc.).
RpcClient
Abstract base class responsible for establishing RPC connections to remote peers.
RpcPeer, RpcPeerOptions (record)
Abstract base class representing one side of an RPC communication channel, managing connection state, message serialization, and call tracking.
LegacyName (record), LegacyNameAttribute
Represents a legacy name mapping with a maximum version, used for backward-compatible RPC resolution.
LegacyNames
An ordered collection of LegacyName entries, indexed by version for backward compatibility.
RpcCallTimeouts (record)
Defines connect, run, and delay timeouts for outbound RPC calls.
RpcCallType (record)
Identifies an RPC call type and its corresponding inbound/outbound call implementation types.
RpcCallTypeIds
Defines well-known numeric identifiers for regular and compute RPC call types.
RpcClientPeer
Represents the client side of an RPC peer connection, handling reconnection logic.
RpcClientPeerReconnectDelayer
Controls reconnection delay strategy for RpcClientPeer instances.
RpcConfiguration
Holds the set of registered RPC service builders and default service mode. Frozen after RpcHub construction to prevent further modification.
RpcConnection
Wraps an RpcTransport and associated properties for a single RPC connection.
RpcException
Base exception type for RPC-related errors.
RpcSerializationFormatException
Thrown when a client requests an RPC serialization format that the server does not support.
RpcHub
Central hub that manages RPC peers, services, and configuration for the RPC infrastructure.
RpcLimits (record)
Defines timeout and periodic limits for RPC connections, keep-alive, and object lifecycle.
RpcMethodAttribute, RpcMethodResolver
Configures RPC method properties such as name, timeouts, delayed-call handling, and local and remote execution modes.
RpcMethodDef
Describes a single RPC method, including its name, kind, serialization, timeouts, and call pipeline.
RpcMethodRef (struct)
A serializable RPC method reference identified by its UTF-8 full name and hash code.
RpcOptionDefaults
The only purpose of this class struct is to offer extension point for extensions in other parts of Fusion applying overrides to different RpcXxxOptions.Default.
RpcRef, RpcRefExt
A stable reference to a logical RPC peer target, encapsulating its address, connection kind, versioning info, and the current RpcRoute generation.
RpcReconnectFailedException
Thrown when an RPC peer permanently fails to reconnect to the remote host.
RpcRerouteException
Exception indicating that an RPC call must be re-routed to a different peer.
RpcRoute
A single route generation of an RpcRef: carries the resolved target info for this generation and signals when a route change (reroute) occurs. A static route (RpcRoute.NewStatic) belongs to a ref that never reroutes.
RpcSerializationFormat, RpcSerializationFormatResolver (record)
Defines a named RPC serialization format with its argument and message serializer factories.
RpcSerializableAttribute
Configures RPC-specific serialization behavior, including treating annotated abstract types and interfaces as non-polymorphic.
RpcServerPeer
Represents the server side of an RPC peer connection, waiting for incoming connections.
RpcServiceDef
Describes a registered RPC service, including its type, mode, methods, and server/client instances.
RpcServiceRegistry
Registry of all RPC service definitions, supporting lookup by type, name, and method resolution.
RpcStream<T>
Typed RPC stream that supports serialization, remote enumeration, and batched delivery of items.
RpcStreamNotFoundException
Thrown when an RPC stream cannot be found or has been disconnected.
RpcDiagnosticsOptions (record)
Configuration options for RPC diagnostics, including call tracing and logging factories.
RpcInboundCallOptions (record)
Configuration options for processing inbound RPC calls on a peer.
RpcOutboundCallOptions (record)
Configuration options for outbound RPC calls, including timeouts, routing, hashing, and delayed-call handling.
RpcRegistryOptions (record)
Configuration options for the RpcServiceRegistry, including service and method factories.
RpcServiceBuilderSettings (record)
Base settings class for customizing RpcServiceBuilder behavior.
RpcBuilder (struct)
Fluent builder for registering and configuring RPC services in a DI container.
RpcFrameDelayer (delegate)
Delegate that introduces a delay between RPC frames to allow batching of small messages.
RpcCallTypes
Registry of RpcCallType instances, mapping call type IDs to their definitions.
RpcDefaults
Provides default API and backend scope names, versions, and peer version sets used by the RPC framework.
RpcFrameDelayerFactories
Provides factory functions that create RpcFrameDelayer instances for various delay strategies.
RpcFrameDelayers
Provides static methods for creating RpcFrameDelayer implementations (yield, tick, delay).
RpcInboundMiddlewarePriority
Well-known priority constants for ordering IRpcMiddleware instances in the pipeline.
ServiceCollectionExt
Extension methods for IServiceCollection to register RPC services.
ServiceProviderExt
Extension methods for IServiceProvider to resolve RPC services.
ActualLab.Rpc.Caching
RpcCacheInfoCaptureMode (enum)
Defines what cache-related information to capture during an RPC call.
RpcCacheEntry
Represents a cached RPC call result, pairing a RpcCacheKey with its RpcCacheValue.
RpcCacheInfoCapture
Captures cache key and value information during outbound RPC calls for cache invalidation and reuse.
RpcCacheKey
A composite key for RPC cache lookups, consisting of a method name and serialized argument data.
RpcCacheValue (record)
Represents a cached RPC response value containing serialized data and an optional content hash.
ActualLab.Rpc.Clients
RpcAlternatingClient
An RpcClient that alternates remote connection attempts between its inner clients.
RpcHttpClient, RpcHttpClientOptions (record)
An RpcClient implementation that establishes full-duplex HTTP/2 connections, with options for URL resolution and transport setup.
RpcWebSocketClient, RpcWebSocketClientOptions (record)
An RpcClient implementation that establishes connections via WebSockets.
ActualLab.Rpc.Diagnostics
RpcCallTracer
Abstract base class for creating inbound and outbound call traces for an RPC method.
RpcInboundCallTrace
Abstract base class representing a trace for an inbound RPC call with an associated activity.
RpcOutboundCallTrace
Abstract base class representing a trace for an outbound RPC call with an associated activity.
RpcCallLogger
Logs inbound and outbound RPC calls at a configurable log level with optional filtering.
RpcCallSummary (record struct)
Captures the result kind and duration of a completed RPC call for metrics recording.
RpcDefaultCallTracer
Default RpcCallTracer that produces OpenTelemetry activities and records call metrics.
RpcDefaultInboundCallTrace
Default inbound call trace that finalizes the activity and records call metrics on completion.
RpcDefaultOutboundCallTrace
Default outbound call trace that finalizes the activity on completion.
RpcActivityInjector
Injects and extracts W3C trace context into/from RPC message headers for distributed tracing.
RpcInstruments
Provides shared OpenTelemetry activity sources, meters, and counters for the RPC framework.
ActualLab.Rpc.Infrastructure
IRpcObject, RpcObjectExt
Represents an RPC object that can be reconnected or disconnected across peers.
IRpcPolymorphicArgumentHandler
Validates inbound RPC calls that have polymorphic arguments.
IRpcSharedObject
An IRpcObject that is shared with a remote peer and supports keep-alive tracking.
IRpcSystemService
Marker interface for system-level RPC services used internally by the RPC framework.
RpcObjectKind (enum)
Defines whether an RPC object is local or remote.
RpcObjectId (record struct)
Uniquely identifies a shared or remote RPC object by host ID and local ID.
RpcPeerChangeKind (enum)
Defines the kind of change detected in a remote peer during handshake comparison.
RpcRoutingMode (enum)
Defines how an RPC call is routed to a peer (outbound, inbound, or pre-routed).
RpcCall, RpcCallHandler
Base class for all RPC call instances, holding the method definition and call identifier.
RpcCallTracker<TRpcCall>
Base class for tracking active RPC calls (inbound or outbound) on a peer.
RpcObjectTracker
Base class for tracking RPC objects (shared or remote) associated with a peer.
RpcServiceBase
Base class for RPC services that provides access to the DI container and RpcHub.
RpcTransport
Base class for RPC transports that handle message serialization and sending.
RpcFrameBasedTransport
Base class for transports that batch outbound RPC messages into frames.
RpcHandshake (record)
Serializable handshake data exchanged between RPC peers during connection establishment.
RpcInboundCall<TResult>
Typed RpcInboundCall that sends the result as TResult.
RpcInboundCallTracker
Tracks active inbound RPC calls on a peer.
RpcInboundContext
Encapsulates the context for processing an inbound RPC message on a peer.
RpcInboundInvalidCallTypeCall<TResult>
Represents an inbound RPC call that failed because its call type ID does not match the expected type.
RpcInboundMessage
A deserialized inbound RPC message containing call type, method reference, arguments, and headers.
RpcInboundNotFoundCall<TResult>
Represents an inbound RPC call whose target service or method could not be found.
RpcInterceptor
Interceptor that routes method invocations to remote RPC peers or local targets based on routing mode.
RpcOutboundCall<TResult>
Typed RpcOutboundCall that creates a result source for TResult.
RpcOutboundCallSetup
Thread-local setup for the next outbound RPC call, controlling peer, routing, and cache capture.
RpcOutboundCallTracker
Tracks active outbound RPC calls on a peer, handling timeouts, reconnection, and abort.
RpcOutboundContext
Encapsulates the context for sending an outbound RPC call, including headers, routing, and caching.
RpcOutboundMessage
An outbound RPC message ready for serialization, containing method, arguments, and headers.
RpcPeerConnectionStateKind (enum)
Identifies disconnected, connecting, connected, and terminal RPC peer connection states.
RpcPeerConnectionState (record)
Snapshot of an RPC peer's lifecycle state, handshake, transport, error, and connection-transition tasks.
RpcRemoteObjectTracker
Tracks remote IRpcObject instances using weak references, with periodic keep-alive signaling.
RpcSharedObjectTracker
Tracks locally shared IRpcSharedObject instances with keep-alive timeout and automatic disposal.
RpcSharedStream<T>
Typed server-side shared stream that reads from a local source and delivers items to the remote consumer.
RpcSimpleChannelTransport
An RpcTransport backed by simple in-memory channels, used for loopback connections.
RpcPipeTransport
An RpcFrameBasedTransport that sends and receives length-prefixed RPC frames over a PipeReader and PipeWriter.
RpcStreamTransport
An RpcFrameBasedTransport that sends and receives length-prefixed RPC frames over a pair of streams.
RpcSystemCallSender
Sends system-level RPC calls (handshake, ok, error, stream control) to a peer's transport.
RpcSystemCalls
Implements IRpcSystemCalls to handle system-level RPC messages on the receiving side.
RpcPolymorphicArgumentHandlerIsValidCallFunc (delegate)
Delegate for validating inbound calls with polymorphic arguments.
RpcTransportSendHandler (delegate)
Delegate invoked by RpcTransport after message serialization to handle send completion or failure.
RpcCallStage
Defines well-known RPC call completion stage constants and a registry for custom stages.
RpcSendHandlers
Provides built-in RpcTransportSendHandler implementations for common send completion scenarios.
WellKnownRpcHeaders
Defines well-known RpcHeaderKey constants for hash, version, and tracing headers.
RpcHeadersExt
Extension methods for working with arrays of RpcHeader.
ActualLab.Rpc.Middlewares
RpcArgumentNullabilityValidator (record)
An IRpcMiddleware that validates non-nullable reference-type arguments on inbound RPC calls.
RpcInboundCallDelayer (record)
An IRpcMiddleware that introduces a configurable random delay before processing inbound RPC calls.
RpcMiddlewareContext<T>
Carries the IRpcMiddleware pipeline state for a specific RpcMethodDef.
RpcMiddlewareOutput<T> (record struct)
Pairs an IRpcMiddleware with its resulting invoker delegate in the middleware pipeline.
RpcRouteValidator (record)
An IRpcMiddleware that validates inbound call routing for distributed and client-only services.
ActualLab.Rpc.Serialization
IRequiresItemSize
Marker interface for message serializers that require item size to be included in the serialized output.
RpcArgumentSerializer
Base class for serializers that encode and decode RPC method argument lists.
RpcByteMessageSerializer
Base class for binary RpcMessageSerializer implementations with shared size limits.
RpcMessageSerializer
Base class for serializers that read and write complete RPC messages including headers and arguments.
RpcTextMessageSerializer
Base class for text-based RpcMessageSerializer implementations with shared size limits.
NullValue
This type is used to serialize null values for polymorphic arguments. You shouldn't use it anywhere directly.
RpcFrameCodec
Serializes batches of RPC messages into frame buffers and parses messages back out of them.
RpcByteArgumentSerializerV4
V4 binary RpcArgumentSerializer that supports polymorphic argument serialization.
RpcByteMessageSerializerV4, RpcByteMessageSerializerV5
V4 binary message serializer using LVar-encoded argument data length prefix.
RpcByteMessageSerializerV4Compact
Compact variant of RpcByteMessageSerializerV4 that transmits method references as hash codes only.
RpcByteMessageSerializerV5Compact
Compact variant of RpcByteMessageSerializerV5 that transmits method references as hash codes only.
RpcTextArgumentSerializerV4
V4 text-based RpcArgumentSerializer that uses a unit-separator delimiter between arguments.
RpcTextArgumentSerializerV4NP
A non-polymorphic variant of RpcTextArgumentSerializerV4 that rejects polymorphic serialization.
RpcTextMessageSerializerV3
V3 JSON-based text message serializer that uses JsonRpcMessage for the message envelope.
RpcMessageSerializerReadFunc (delegate)
Delegate that reads an RpcInboundMessage from serialized byte data.
RpcMessageSerializerWriteFunc (delegate)
Delegate that writes an RpcOutboundMessage into a byte buffer.
ActualLab.Rpc.Testing
RpcTestClient, RpcTestClientOptions (record)
An RpcClient implementation that creates in-memory channel-based connections for testing.
RpcTestConnection
Manages a paired client-server in-memory connection for RPC testing with connect/disconnect/reconnect support.
RpcBuilderExt
Extension methods for RpcBuilder that register RpcTestClient for in-memory testing.
ActualLab.Rpc.WebSockets
RpcWebSocketTransport
An RpcTransport implementation that sends and receives RPC messages over a WebSocket connection.
RpcWebSocketCloseCode
Defines well-known application-specific WebSocket close codes used by the RPC framework.
WebSocketOwner
Owns a WebSocket and its associated HttpMessageHandler, disposing both on cleanup.
WebSocketExt
Extension methods for WebSocket providing cross-platform send and receive overloads.
ActualLab.Rpc.Trimming
RpcProxyCodeKeeperExtension
Retains RPC proxy and serialization code that would otherwise be trimmed by the .NET IL linker.
ActualLab.Rpc.Server
ActualLab.Rpc.Server
RpcHttpServer
Server-side handler that accepts incoming full-duplex HTTP/2 connections and establishes RPC peer connections for ASP.NET Core hosts.
RpcHttpServerOptions (record)
Configuration options for RpcHttpServer, including request paths, backend exposure, and connection parameters.
RpcHttpServerBuilder (struct)
Builder for configuring RpcHttpServer and its options.
RpcHttpServerRefFactory (delegate)
Creates an RpcRef for an HTTP server connection from its HTTP context and backend flag.
RpcHttpServerDefaultDelegates
Provides default delegate implementations for RpcHttpServer.
RpcWebSocketServer, RpcWebSocketServerOptions (record), RpcWebSocketServerBuilder (struct)
Server-side handler that accepts incoming WebSocket connections and establishes RPC peer connections for ASP.NET Core hosts.
RpcWebSocketServerRefFactory (delegate)
Delegate that creates an RpcRef for a WebSocket server connection based on the HttpContext and backend flag.
RpcWebSocketServerDefaultDelegates
Provides default delegate implementations for RpcWebSocketServer, including the peer reference factory.
AssemblyExt
Extension methods for Assembly to discover Web API controller types.
EndpointRouteBuilderExt
Extension methods for IEndpointRouteBuilder to map RPC WebSocket and full-duplex HTTP endpoints.
HttpConfigurationExt
Extension methods for HttpConfiguration to configure dependency resolution using IServiceCollection.
RpcBuilderExt
Extension methods for RpcBuilder to add RPC WebSocket and full-duplex HTTP support.
ServiceCollectionExt
Extension methods for IServiceCollection to register Web API controllers as transient services.
ServiceProviderExt
Extension methods for IServiceProvider to create IDependencyResolver instances for Web API.
ActualLab.CommandR
ActualLab.CommandR
ICommand<TResult>, ICommandHandler<in TCommand>, CommandExt
A command that produces a result of type TResult.
ICommandService, CommandServiceExt
A tagging interface for command service proxy types.
ICommander, CommanderBuilder (struct), CommanderExt
The main entry point for executing commands through the handler pipeline.
IEventCommand
Represents an event command that can be dispatched to multiple handler chains identified by ChainId.
CommandContext<TResult>, CommandContextExt
A strongly-typed CommandContext for commands producing TResult.
CommandExecutionState (record struct)
Tracks the current position within a CommandHandlerChain during command execution.
ServiceCollectionExt
Extension methods for IServiceCollection to register the commander.
ServiceProviderExt
Extension methods for IServiceProvider to resolve commander services.
ActualLab.CommandR.Commands
IBackendCommand<TResult>
A generic variant of IBackendCommand that produces a typed result.
IDelegatingCommand<TResult>
A generic variant of IDelegatingCommand that produces a typed result.
IOutermostCommand
A tagging interface that ensures the command always run as the outermost one.
IPreparedCommand
A command that must be prepared before execution.
ISystemCommand
A tagging interface for any command that is triggered as a consequence of another command, i.e., for "second-order" commands.
LocalCommand (record)
Base record for local commands that execute inline via a delegate.
ActualLab.CommandR.Configuration
CommandHandlerFilter
Defines the contract for filtering which command handlers are used for a given command type.
CommandHandler (record)
Base record for command handler descriptors that participate in the execution pipeline.
CommandFilterAttribute
Marks a method as a command filter handler (a handler with IsFilter set to true).
CommandHandlerAttribute, CommandHandlerResolver
Marks a method as a command handler, optionally specifying priority and filter mode.
CommandHandlerChain
An ordered chain of CommandHandler instances (filters and a final handler) that form the execution pipeline for a command.
CommandHandlerRegistry
A registry of all registered CommandHandler instances, resolved from the DI container at construction time.
CommandHandlerSet
Holds all resolved CommandHandlerChain instances for a specific command type, supporting both regular commands and event commands with multiple chains.
FuncCommandHandlerFilter
A CommandHandlerFilter backed by a delegate function.
InterfaceCommandHandler (record)
A CommandHandler that invokes a command via the ICommandHandler<TCommand> interface on a resolved service.
MethodCommandHandler (record)
A CommandHandler that invokes a command by calling a specific method on a resolved service instance.
CommandHandlerResolverExt
Extension methods for CommandHandlerResolver.
ActualLab.CommandR.Diagnostics
CommandTracer
A command filter that creates OpenTelemetry Activity instances for command execution and logs errors.
CommanderInstruments
Provides OpenTelemetry instrumentation primitives for the commander pipeline.
ActualLab.CommandR.Interception
CommandHandlerMethodDef
A MethodDef specialized for intercepted command handler methods, validating that the method signature conforms to expected patterns.
CommandServiceInterceptor
An Interceptor that guards command service proxy calls, ensuring they are invoked only within an active CommandContext.
ActualLab.CommandR.Operations
IOperationEventSource
Defines the contract for objects that can produce an OperationEvent.
IOperationScope, OperationScopeExt
Defines the contract for an operation scope that manages the lifecycle of an Operation within a command pipeline.
NestedOperation (record)
Represents a nested command operation recorded during execution of a parent operation.
Operation
Represents a recorded operation (a completed command execution) with its nested operations, events, and metadata.
OperationEvent
Represents an event recorded during an Operation, typically used for eventual consistency and event replay.
ActualLab.CommandR.Rpc
RpcCommandHandler
A command filter that routes commands to remote RpcPeer instances or executes them locally, with automatic rerouting on topology changes.
RpcInboundCommandHandler (record)
An RPC middleware that routes inbound RPC calls for commands through the ICommander pipeline instead of direct method invocation.
ActualLab.CommandR.Trimming
CommanderProxyCodeKeeperExtension
Retains commander proxy-related code needed for .NET trimming scenarios.
ActualLab.Fusion
ActualLab.Fusion
IComputeService, ComputeServiceExt
A tagging interface for Fusion compute service proxy types.
IComputedStateOptions
Configuration options for IComputedState.
IComputedState, IComputedState<T>, ComputedState, ComputedState<T>
A state that automatically recomputes its value on invalidation using a configurable update delay.
IMutableStateOptions
Configuration options for IMutableState.
IMutableState, IMutableState<T>, MutableState, MutableState<T>
A state that supports explicit value mutation, synchronously updating and invalidating its computed value on each change.
ISessionCommand<TResult>, SessionCommandExt
A strongly-typed ISessionCommand that returns a result of type TResult.
IStateOptions<T>, StateOptions<T> (record)
Strongly typed state options with an initial output of type T.
IState, IState<T>, State
A reactive state backed by a Computed value that raises events on invalidation and update.
StateFactory, StateExt
Factory and extension methods for Fusion state objects.
CallOptions (enum)
Defines flags controlling how a compute method call is performed.
ConsistencyState (enum), ConsistencyStateExt
Defines the consistency state of a Computed instance.
InvalidationSourceFormat (enum)
Defines formatting options for displaying InvalidationSource values.
InvalidationTrackingMode (enum)
Defines how much detail is retained when tracking invalidation sources.
RemoteComputedCacheMode (enum)
Defines caching behavior for remote computed values.
StateEventKind (enum)
Defines the kinds of lifecycle events raised by a State.
ComputeFunction, ComputeFunctionExt
Base class for functions that produce Computed instances with lock-based concurrency control.
IComputed, Computed, Computed<T>, ComputedExt
The core Fusion abstraction: a cached computation result with consistency tracking, dependencies, and automatic invalidation propagation.
ComputedOptions (record)
Configuration options controlling computed-value caching, invalidation delays, and consolidation.
ComputedInput
Represents the input (arguments) of a compute function, serving as the key for looking up Computed instances in the ComputedRegistry.
ComputedSynchronizer
Provides synchronization logic for Computed instances, ensuring remote computed values are synchronized before use.
ComputeContext
Tracks the current compute call context, including call options and captured computed instances.
ComputeMethodAttribute
Marks a method as a Fusion compute method, enabling automatic caching and invalidation of its Computed output.
ComputedRegistry
A global registry that stores and manages all Computed instances using weak references, with automatic pruning of collected entries.
ComputedSource<T>, ComputedSourceExt
A strongly-typed ComputedSource that produces Computed<T> values.
IConsolidatingComputed, ConsolidatingComputed<T>
A Computed that implements IsConsolidating behavior.
DefaultSessionFactory
Provides factory methods that create SessionFactory delegates producing Session instances with random string identifiers.
FixedDelayer (record)
An IUpdateDelayer with a fixed update delay and configurable retry delays.
InvalidationSource (struct)
Describes the source (origin) of a Computed invalidation, which can be a code location, a string label, or a reference to another Computed.
RemoteComputeMethodAttribute
Marks a method as a remote compute method, extending ComputeMethodAttribute with remote computed caching configuration.
RpcDisabledException
Exception thrown when an RPC call is attempted inside an invalidation block.
Session, SessionResolver, SessionFactory (delegate), SessionExt
Represents an authenticated user session identified by a unique string Id.
StateBoundComputed<T>
A Computed<T> produced by and bound to a State, notifying the state on invalidation.
StateSnapshot
An immutable snapshot of a State's lifecycle, capturing the current Computed, update count, error count, and retry count.
UpdateDelayer (record)
An IUpdateDelayer that integrates with UIActionTracker to provide instant updates during user interactions.
ComputedCancellationReprocessingOptions (record)
Configuration for reprocessing compute method calls that fail due to cancellation.
FusionBuilder (struct)
A builder for registering Fusion services, compute services, and related infrastructure in an IServiceCollection.
FusionRpcServiceBuilder
A Fusion-specific RpcServiceBuilder that adds compute service proxy creation and command handler registration support.
SessionValidator (delegate)
A delegate that determines whether a Session is valid.
ComputedVersion
Generates globally unique, monotonically increasing version numbers for Computed instances using thread-local counters.
FusionDefaultDelegates
Provides default delegate instances used by Fusion infrastructure.
Invalidation
Provides static helpers to check whether invalidation is active and to begin invalidation scopes.
StateCategories
A cache-backed helper for building state category strings from type names and suffixes.
ServiceCollectionExt
Extension methods for IServiceCollection to register Fusion services.
ServiceProviderExt
Extension methods for IServiceProvider to access Fusion services.
StateFactoryExt
Extension methods for StateFactory.
ActualLab.Fusion.Blazor
IHasCircuitHub
Indicates that the implementing type has access to a CircuitHub instance.
IStatefulComponent<T>, StatefulComponentBase<T>
Defines a Blazor component that owns a typed IState<T> instance.
ComputedStateComponentOptions (enum), ComputedStateComponent<T>
Defines option flags for ComputedStateComponent controlling recomputation, rendering, and dispatch behavior.
ParameterComparisonMode (enum), ParameterComparisonModeExt
Defines the parameter comparison strategy for Blazor Fusion components.
CircuitHubComponentBase
Base class for Blazor components that access CircuitHub and its commonly used services (session, state factory, UICommander, etc.).
ComputedRenderStateComponent<TState>
A computed state component that tracks render state snapshots to avoid redundant re-renders when the state has not changed.
FusionComponentBase, FusionComponentAttribute
Base Blazor component with custom parameter comparison and event handling to reduce unnecessary re-renders.
MixedStateComponent<T, TMutableState>
A computed state component that also manages a MutableState<T>, automatically recomputing when the mutable state changes.
ParameterComparer, ParameterComparerAttribute, ParameterComparerProvider
Base class for custom Blazor component parameter comparers used to determine whether a component should re-render.
ByIdAndVersionParameterComparer<TId, TVersion>
A ParameterComparer that compares parameters by both Id and Version.
ByIdParameterComparer<TId>
A ParameterComparer that compares parameters by their Id.
ByNoneParameterComparer
A ParameterComparer that always considers parameters equal (never triggers re-render).
ByRefParameterComparer
A ParameterComparer that compares parameters by reference equality.
ByUuidAndVersionParameterComparer<TVersion>
A ParameterComparer that compares parameters by both Uuid and Version.
ByUuidParameterComparer
A ParameterComparer that compares parameters by their Uuid.
ByValueParameterComparer
A ParameterComparer that compares parameters using Equals(object, object).
ByVersionParameterComparer<TVersion>
A ParameterComparer that compares parameters by their Version.
CircuitHub
CircuitHub is a scoped service caching a set of most frequently used Blazor & Fusion services. In addition to that, it enables access to Blazor Dispatcher and provides information about the current RenderMode.
ComponentFor
Renders a "dynamically bound" component.
ComponentInfo
Cached metadata about a Blazor component type, including its parameters and their associated comparers for custom change detection.
ComponentParameterInfo
Stores metadata about a single Blazor component parameter, including its property info, comparer, and cascading parameter details.
DefaultParameterComparer
Default parameter comparer that uses known immutable type detection and value equality, mirroring Blazor's built-in change detection logic.
JSRuntimeInfo
Provides information about the current JS runtime, including whether it is remote (Blazor Server) and whether prerendering is in progress.
RenderModeHelper
Provides helpers for querying and switching the current Blazor render mode.
RenderModeDef (record)
Defines a Blazor render mode (e.g., Server, WASM, Auto) with its key and display title.
FusionBlazorBuilder (struct)
Builder for configuring Fusion Blazor integration services such as CircuitHub, UICommander, and JS runtime info.
ComponentExt
Low-level extension methods for ComponentBase providing access to internal Blazor fields (render handle, initialization state) and dispatcher operations.
ComputedStateComponentOptionsExt
Extension methods for ComputedStateComponentOptions.
FusionBuilderExt
Extension methods for FusionBuilder to add Blazor integration.
ActualLab.Fusion.Client
IRemoteComputed, RemoteComputed<T>, RemoteComputedExt
A computed value produced by a remote RPC call that tracks synchronization state with the server.
ActualLab.Fusion.Client.Caching
FlushingRemoteComputedCache
A RemoteComputedCache that batches write operations and flushes them periodically for better performance.
RemoteComputedCache
Abstract base class for remote computed caches that handle serialization and version-based cache invalidation.
InMemoryRemoteComputedCache
An in-memory implementation of FlushingRemoteComputedCache.
SharedRemoteComputedCache
An IRemoteComputedCache wrapper that delegates to a shared singleton RemoteComputedCache instance.
ActualLab.Fusion.Client.Interception
RemoteComputeMethodFunction, RemoteComputeMethodFunction<T>
Handles remote RPC compute method calls with caching, synchronization, and rerouting support.
RemoteComputeServiceInterceptor
An interceptor for remote compute services that delegates calls to either the local compute method handler or the RPC interceptor.
ActualLab.Fusion.Diagnostics
FusionMonitor
A background worker that monitors ComputedRegistry access and registration statistics, periodically logging them for diagnostics.
FusionInstruments
Provides shared ActivitySource and Meter instances for Fusion diagnostics.
ActualLab.Fusion.Extensions
IFusionTime
A compute service that provides auto-invalidating time-related computed values.
IKeyValueStore, KeyValueStoreExt
A shard-aware key-value store service with compute method support for invalidation.
ISandboxedKeyValueStore, SandboxedKeyValueStoreExt
A session-scoped key-value store that enforces key prefix constraints based on the current session and user.
RpcPeerStateKind (enum)
Defines the high-level connection state kinds for an RPC peer.
SortDirection (enum)
Defines sort direction values for ordered queries.
KeyValueStore_Remove (record)
Backend command to remove one or more keys from the IKeyValueStore.
KeyValueStore_Set (record)
Backend command to set one or more key-value entries in the IKeyValueStore.
PageRef<TKey> (record)
A typed cursor-based pagination reference with a count and an optional "after" key.
RpcPeerRawConnectedState (record)
Represents the connected state of an RPC peer.
RpcPeerRawDisconnectedState (record)
Represents the disconnected state of an RPC peer, including reconnection timing.
RpcPeerRawState (record)
Represents the raw connection state of an RPC peer.
RpcPeerState (record)
A user-friendly representation of an RPC peer's connection state.
RpcPeerStateMonitor
A background worker that monitors RPC peer connection state changes and exposes the current state via computed properties.
SandboxedKeyValueStore_Remove (record)
Command to remove one or more keys from the ISandboxedKeyValueStore.
SandboxedKeyValueStore_Set (record)
Command to set one or more key-value entries in the ISandboxedKeyValueStore.
EnumerableExt
Extension methods for IEnumerable<T> supporting ordering and pagination.
FusionBuilderExt
Extension methods for FusionBuilder.
QueryableExt
Extension methods for IQueryable<T> supporting ordering and pagination.
ActualLab.Fusion.Interception
IComputedMethodComputed
A tagging interface for Computed instances produced by compute methods.
ComputeMethodComputed<T>
A Computed<T> produced by a compute method interception, which auto-registers and unregisters itself in ComputedRegistry.
ComputeMethodDef
Describes a compute method, including its ComputedOptions and optional consolidation configuration.
ComputeMethodFunction<T>
A strongly-typed ComputeMethodFunction that creates ComputeMethodComputed<T> instances.
ComputeMethodInput
A ComputedInput representing the arguments of an intercepted compute method call.
ComputeServiceInterceptor
An interceptor that routes compute method calls through ComputeMethodFunction to produce cached Computed values.
ComputedOptionsProvider
Resolves ComputedOptions for compute methods, adjusting cache settings based on the availability of IRemoteComputedCache.
ConsolidatingComputeMethodFunction<T>
A strongly-typed ConsolidatingComputeMethodFunction that creates ConsolidatingComputed<T> instances.
ActualLab.Fusion.Operations
IOperationCompletionListener
A listener that is notified when an operation completes, enabling side-effect processing such as invalidation.
Completion<TCommand> (record)
Default implementation of ICompletion<TCommand> carrying the completed operation.
IOperationCompletionNotifier, OperationCompletionNotifier
Notifies registered operation-completion listeners, deduplicating operations by UUID before dispatch.
ActualLab.Fusion.Operations.Reprocessing
IOperationReprocessor, OperationReprocessor, OperationReprocessorExt
Reprocesses commands that failed with a reprocessable transient error. The implementation must be a transient service.
ActualLab.Fusion.Rpc
RpcComputeMethodDef
An RpcMethodDef for compute methods, carrying ComputedOptions and using the Fusion-specific RPC call type.
RpcComputeServiceDef
An RpcServiceDef for IComputeService types, providing access to ComputedOptionsProvider.
RpcInboundComputeCallHandler
An RPC middleware that wraps inbound compute method calls in a ComputeContext to capture the resulting Computed instance.
RpcOptionsExt
Extension methods for RpcOptionDefaults.
RpcRegistryOptionsExt
Extension methods for RpcRegistryOptions that apply Fusion-specific overrides.
ActualLab.Fusion.Testing
ComputedTest
Test helpers that repeatedly evaluate an assertion inside a ComputedSource<T> until it passes or a timeout is reached.
ActualLab.Fusion.Trimming
FusionProxyCodeKeeperExtension
A code keeper extension that prevents the .NET trimmer from removing Fusion-specific proxy types, computed functions, and RPC call types.
ActualLab.Fusion.UI
UIAction<TResult>
A strongly-typed UIAction that produces a UIActionResult<T> upon completion.
UIActionFailureTracker
Tracks failed UIAction results, deduplicating recent errors of the same type and message.
UIActionResult<T>
A strongly-typed IUIActionResult carrying the result of a UIAction<TResult>.
UIActionTracker
Tracks running and completed UIAction instances, enabling UpdateDelayer to provide instant updates during user interactions.
UICommander
A command executor for UI layers that wraps each command in a tracked UIAction and registers it with the UIActionTracker.
ServiceProviderExt
Extension methods for IServiceProvider to resolve UI-related Fusion services.
ActualLab.Fusion.Server
ActualLab.Fusion.Server
DefaultDependencyResolver
An IDependencyResolver implementation that delegates to an IServiceProvider for Web API dependency injection.
JsonifyErrorsAttribute
An MVC exception filter that serializes exceptions as JSON error responses.
TextMediaTypeFormatter
A MediaTypeFormatter that handles plain text (text/plain) content for Web API endpoints.
UseDefaultSessionAttribute
A Web API action filter that replaces default sessions in ISessionCommand arguments with the resolved session.
FusionMvcWebServerBuilder (struct)
Builder for configuring Fusion MVC web server services including custom model binder providers and controller registration.
FusionWebServerBuilder (struct)
Builder for configuring Fusion web server services including RPC, session middleware, and render mode endpoints.
ApplicationBuilderExt
Extension methods for IApplicationBuilder to configure Fusion middleware.
EndpointRouteBuilderExt
Extension methods for IEndpointRouteBuilder to map Fusion render mode endpoints.
FusionBuilderExt
Extension methods for FusionBuilder to add Fusion web server services.
HttpActionContextExt
Extension methods for HttpActionContext to access per-request item storage in .NET Framework Web API.
HttpContextExt
Extension methods for IDependencyScope and HttpActionContext to simplify service resolution in Web API.
ServiceCollectionExt
Extension methods for IServiceCollection to register Fusion server services.
ActualLab.Fusion.Server.Controllers
RenderModeController
MVC controller that handles Blazor render mode selection via cookie.
ActualLab.Fusion.Server.Endpoints
RenderModeEndpoint
Endpoint handler that manages Blazor render mode persistence via cookies and returns redirect results.
ActualLab.Fusion.Server.Middlewares
SessionMiddleware
ASP.NET Core middleware that resolves or creates a Session from cookies and makes it available via ISessionResolver.
HttpContextExtractors
Provides factory methods for creating HttpContext-based value extractors used to derive session tags or identifiers from incoming requests.
ActualLab.Fusion.Server.Rpc
RpcDefaultSessionReplacer (record)
RPC middleware that replaces default sessions in inbound calls with the session bound to the current SessionBoundRpcConnection.
SessionBoundRpcConnection
An RpcConnection that carries an associated Session, enabling server-side session resolution for inbound RPC calls.
RpcOptionsExt
Extension methods for RpcOptionDefaults to apply Fusion server overrides.
RpcPeerOptionsExt
Extension methods for RpcPeerOptions to apply Fusion server overrides, including session-bound connection factory support.
ActualLab.Fusion.EntityFramework
ActualLab.Fusion.EntityFramework
IHasShard
Defines the contract for objects that are associated with a specific database shard.
DbContextBase, DbContextBuilder<TDbContext> (struct), DbContextExt
This type solves a single problem: currently EF Core 6.0 doesn't properly dispose pooled DbContexts rendering them unusable after disposal. Details: https://github.com/dotnet/efcore/issues/26202
DbEntityConverter<TDbContext, TDbEntity, TModel>
Abstract base for IDbEntityConverter<TDbEntity, TModel> implementations that provides default ToEntity and ToModel conversion logic.
DbProcessorBase<TDbContext>
Abstract base for database processors scoped to a specific TDbContext, with lazy access to DbHub<TDbContext>.
DbServiceBase<TDbContext>
Abstract base for database services scoped to a specific TDbContext, with lazy access to DbHub<TDbContext> and common infrastructure.
DbShardWorkerBase<TDbContext>
Abstract base for shard-aware database workers that automatically spawn per-shard tasks when new shards become available.
DbWorkerBase<TDbContext>
Abstract base for long-running database workers scoped to a specific TDbContext, with access to DbHub<TDbContext>.
DbCustomHint (record)
A DbHint containing a custom SQL hint string passed directly to the formatter.
DbEntityResolver<TDbContext, TKey, TDbEntity>
This type queues (when needed) & batches calls to Get with BatchProcessor<TIn, TOut> to reduce the rate of underlying DB queries.
DbHint (record)
Base record for database query hints that influence SQL generation (e.g., locking).
DbHub<TDbContext>
Typed IDbHub implementation for a specific TDbContext, providing DbContext creation with execution strategy suspension and operation scope integration.
DbLockingHint (record)
A DbHint representing row-level locking modes (e.g., Share, Update).
DbShardResolver<TDbContext>, DbShard
Default IDbShardResolver<TDbContext> that resolves shards from Session, IHasShard, and ISessionCommand objects.
DbShardRegistry<TContext>
Default IDbShardRegistry<TContext> implementation that maintains shard sets, tracks used shards, and computes event processor shards.
DbWaitHint (record)
A DbHint representing lock wait behavior (e.g., NoWait, SkipLocked).
ShardDbContextFactory<TDbContext>, ShardDbContextBuilder<TDbContext> (struct)
Default IShardDbContextFactory<TDbContext> implementation that caches per-shard IDbContextFactory<TDbContext> instances built by a ShardDbContextFactoryBuilder<TDbContext>.
DbOperationsBuilder<TDbContext> (struct)
A builder for configuring database operation services such as operation scopes, log readers, log trimmers, and completion listeners for a specific DbContext.
DbIsolationLevelSelector<TDbContext> (delegate)
A delegate that selects the IsolationLevel for a given CommandContext scoped to a specific DbContext type.
ShardDbContextFactoryBuilder<TDbContext> (delegate)
A delegate that builds an IDbContextFactory<TDbContext> for a given shard.
DbHintSet
Provides commonly used DbHint arrays for query locking and wait behavior.
DbKey
Helper for composing composite primary key values for Entity Framework lookups.
ActivityExt
Extension methods for Activity to add shard-related tags.
DbContextOptionsBuilderExt
Extension methods for DbContextOptionsBuilder to register an IDbHintFormatter implementation.
DbEntityResolverExt
Extension methods for IDbEntityResolver<TKey, TDbEntity> providing single-shard shortcuts and batch entity retrieval helpers.
DbSetExt
Extension methods for DbSet<TEntity> providing query hint application and row-level locking shortcuts.
FusionBuilderExt
Extension methods for FusionBuilder to register global DbIsolationLevelSelector instances.
IsolationLevelExt
Extension methods for IsolationLevel providing combinators such as Or and Max.
ServiceCollectionExt
Extension methods for IServiceCollection to register DbContextBuilder<TDbContext> services and transient DbContext factories.
ServiceProviderExt
Extension methods for IServiceProvider to resolve common Fusion EntityFramework services such as DbHub<TDbContext> and entity resolvers.
ActualLab.Fusion.EntityFramework.LogProcessing
IDbLogReader
Defines the contract for a service that reads and processes database log entries.
IDbEventLogEntry
Extends IDbLogEntry with a DelayUntil timestamp for timed event log entries.
IDbIndexedLogEntry
Extends IDbLogEntry with a sequential index for ordered log entries such as operation logs.
IDbLogEntry
Defines the contract for a database log entry with UUID, version, state, and timestamp.
IDbLogTrimmer, DbLogTrimmerOptions (record)
Defines the contract for a service that trims old database log entries.
DbLogKind (enum), DbLogKindExt
Defines the kind of database log: operation log or event log.
LogEntryState (enum)
Defines processing state values for database log entries.
DbEventLogReader<TDbContext, TDbEntry, TOptions>, DbEventLogReaderOptions (record)
Abstract base for reading and processing event log entries from the database, using exclusive row locking to ensure each event is processed exactly once.
DbEventLogTrimmer<TDbContext, TDbEntry, TOptions>
Abstract base for periodically trimming old event log entries from the database based on MaxEntryAge.
DbLogReader<TDbContext, TDbKey, TDbEntry, TOptions>, DbLogReaderOptions (record)
Abstract base for shard-aware database log readers that process entries in batches, handle reprocessing on failures, and coordinate with IDbLogWatcher<TDbContext, TDbEntry>.
DbLogWatcher<TDbContext, TDbEntry>
Abstract base for IDbLogWatcher<TDbContext, TDbEntry> implementations that manage per-shard watchers to detect log changes.
DbOperationLogReader<TDbContext, TDbEntry, TOptions>, DbOperationLogReaderOptions (record)
Abstract base for reading and processing indexed operation log entries from the database, tracking the next expected index per shard.
DbOperationLogTrimmer<TDbContext, TDbEntry, TOptions>
Abstract base for periodically trimming old indexed operation log entries from the database based on MaxEntryAge.
FakeDbLogWatcher<TDbContext, TDbEntry>
A no-op IDbLogWatcher<TDbContext, TDbEntry> placeholder that logs a warning about missing watcher configuration. Change notifications rely on periodic polling.
FileSystemDbLogWatcher<TDbContext, TDbEntry>, FileSystemDbLogWatcherOptions<TDbContext> (record)
An IDbLogWatcher<TDbContext, TDbEntry> that uses file system watchers to detect log changes via tracker files on disk.
LocalDbLogWatcher<TDbContext, TDbEntry>
A local (in-process) IDbLogWatcher<TDbContext, TDbEntry> that immediately notifies watchers on the same host without inter-process communication.
LogEntryNotFoundException
The exception thrown when a requested log entry is not found in the database.
ActualLab.Fusion.EntityFramework.Operations
DbShardWatcher
Watches a single database shard for changes and exposes a WhenChanged task that completes when the shard's log is updated.
DbEvent
Entity Framework entity representing a persisted operation event in the "_Events" table, supporting delayed processing and state tracking.
DbEventProcessor<TDbContext>
Processes OperationEvent instances stored as DbEvent entries, dispatching command events via the ICommander.
DbOperation
Entity Framework entity representing a persisted operation in the "_Operations" table, used for cross-host operation log replication and invalidation.
DbOperationCompletionListener<TDbContext>
Listens for locally completed operations and notifies log watchers to trigger remote invalidation and event processing.
DbOperationFailedException
The exception thrown when a database operation fails during commit or processing.
DbOperationScope, DbOperationScope<TDbContext>, DbOperationScopeProvider
Database-backed operation scopes that manage transactions, operation/event persistence, and commit verification.
ActualLab.Fusion.EntityFramework.Operations.LogProcessing
DbEventLogReader<TDbContext>
Reads and processes DbEvent log entries, dispatching them through DbEventProcessor<TDbContext>.
DbEventLogTrimmer<TDbContext>
Trims processed and discarded DbEvent entries that exceed the configured maximum age.
DbOperationLogReader<TDbContext>
Reads and processes DbOperation log entries, notifying remote hosts about completed operations for cache invalidation.
DbOperationLogTrimmer<TDbContext>
Trims old DbOperation log entries that exceed the configured maximum age.
Microsoft.EntityFrameworkCore
IDbContextFactory<out TContext>
Defines a factory for creating DbContext instances. A service of this type is registered in the dependency injection container by the AddDbContextPool methods.
IndexAttribute
Fake IndexAttribute is used only to keep models the same for all targets.
RelationalDatabaseFacadeExtensions
Provides methods to set the underlying DbConnection on a DatabaseFacade via reflection (NETSTANDARD2_0 compatibility shim).
Microsoft.Extensions.DependencyInjection
EntityFrameworkServiceCollectionExtensions
Extension methods for setting up Entity Framework related services in an IServiceCollection.
ActualLab.Fusion.EntityFramework.Npgsql
ActualLab.Fusion.EntityFramework.Npgsql
NpgsqlDbLogWatcher<TDbContext, TDbEntry>, NpgsqlDbLogWatcherOptions<TDbContext> (record)
An IDbLogWatcher<TDbContext, TDbEntry> that uses PostgreSQL LISTEN/NOTIFY to detect database log changes across hosts.
DbContextOptionsBuilderExt
Extension methods for DbContextOptionsBuilder to register the PostgreSQL-specific NpgsqlDbHintFormatter.
DbOperationsBuilderExt
Extension methods for DbOperationsBuilder<TDbContext> to register the PostgreSQL LISTEN/NOTIFY-based operation log watcher.
ActualLab.Fusion.EntityFramework.Redis
ActualLab.Fusion.EntityFramework.Redis
RedisDbLogWatcher<TDbContext, TDbEntry>, RedisDbLogWatcherOptions<TDbContext> (record)
An IDbLogWatcher<TDbContext, TDbEntry> that uses Redis pub/sub to detect database log changes across hosts.
DbContextBuilderExt
Extension methods for DbContextBuilder<TDbContext> to register Redis database connections for use with Fusion EntityFramework services.
DbOperationsBuilderExt
Extension methods for DbOperationsBuilder<TDbContext> to register the Redis pub/sub-based operation log watcher.
ActualLab.Fusion.Blazor.Authentication
ActualLab.Fusion.Blazor.Authentication
AuthState, AuthStateProvider
Extends AuthenticationState with Fusion's User model and forced sign-out status.
ChangeAuthStateUICommand
A UI command representing an authentication state change, used to track auth state transitions via the UI action tracker.
ClientAuthHelper
Client-side helper for performing sign-in, sign-out, and session management operations via JavaScript interop and the IAuth service.
FusionBlazorBuilderExt
Extension methods for FusionBlazorBuilder to add Blazor authentication and presence reporting services.
ActualLab.Fusion.Ext.Contracts
ActualLab.Fusion.Authentication
IAuth
The primary authentication service contract, providing sign-out, user editing, presence updates, and session/user query methods.
IAuthBackend
Backend authentication service contract for sign-in, session setup, and session options management.
AuthBackend_SetupSession (record)
Backend command to set up or update session metadata (IP address, user agent, options).
AuthBackend_SignIn (record)
Backend command to sign in a user with the specified identity.
Auth_EditUser (record)
Command to edit the current user's profile (e.g., name) within a session.
Auth_SignOut (record)
Command to sign out a session, optionally kicking other user sessions.
PresenceReporter
A background worker that periodically reports user presence via UpdatePresence.
ServerAuthHelper
Server-side helper that synchronizes ASP.NET Core authentication state with Fusion's IAuth service on each HTTP request.
SessionAuthInfo (record)
Stores authentication-related information for a session, including the authenticated identity, user ID, and forced sign-out status.
SessionInfo (record)
Stores detailed information about a user session, including version, timestamps, IP address, user agent, and additional options.
User (record), UserExt
Represents an authenticated or guest user with claims, identities, and version tracking.
AuthBackend_SetSessionOptions (record)
Backend command to set session options for the specified session.
DbAuthServiceBuilder<TDbContext, TDbSessionInfo, TDbUser, TDbUserId> (struct)
Builder for configuring database-backed authentication services, including repositories, entity converters, and session trimmer.
EndpointRouteBuilderAuthExt
Extension methods for IEndpointRouteBuilder to map Fusion authentication endpoints.
FusionBuilderExt
Extension methods for FusionBuilder to register authentication client services.
FusionMvcWebServerBuilderExt
Extension methods for FusionMvcWebServerBuilder to register MVC-based authentication controllers.
FusionWebServerBuilderExt
Extension methods for FusionWebServerBuilder to register authentication endpoints and server auth helpers.
HttpContextExt
Extension methods for HttpContext to retrieve authentication schemes and remote IP addresses.
ActualLab.Fusion.Ext.Services
ActualLab.Fusion.Authentication.Controllers
AuthController
MVC controller that handles sign-in and sign-out HTTP requests by delegating to AuthEndpoints.
ActualLab.Fusion.Authentication.Endpoints
AuthEndpoints
Handles sign-in and sign-out HTTP requests using ASP.NET Core authentication.
ActualLab.Fusion.Authentication.Services
DbAuthService<TDbContext>
Abstract base class for database-backed authentication services, defining the IAuth and IAuthBackend contract methods.
DbSessionInfoTrimmer<TDbContext>, DbSessionInfoTrimmer<TDbContext, TDbSessionInfo, TDbUserId>
Background workers that periodically trim expired session records.
DbSessionInfo<TDbUserId>
Entity Framework entity representing a session record in the database, including authentication state and metadata.
DbSessionInfoConverter<TDbContext, TDbSessionInfo, TDbUserId>
Converts between DbSessionInfo<TDbUserId> entities and SessionInfo models.
IDbSessionInfoRepo<TDbContext, TDbSessionInfo, TDbUserId>, DbSessionInfoRepo<TDbContext, TDbSessionInfo, TDbUserId>
Repository contract and default implementation for session-info CRUD and expired-session trimming.
DbUser<TDbUserId>
Entity Framework entity representing a user record in the database, with claims and identity associations.
DbUserConverter<TDbContext, TDbUser, TDbUserId>
Converts between DbUser<TDbUserId> entities and User models.
DbUserIdHandler<TDbUserId>
Default implementation of IDbUserIdHandler<TDbUserId> using converters for parsing and formatting user IDs.
DbUserIdentity<TDbUserId>
Entity Framework entity representing a user identity record in the database.
DbUserRepo
Default database repository for user entities, supporting CRUD and lookup by identity.
InMemoryAuthService
In-memory implementation of IAuth and IAuthBackend for testing and client-side scenarios.
DbAuthIsolationLevelSelector
Selects the database isolation level for authentication-related commands.
ActualLab.Fusion.Extensions.Services
DbKeyValue
Entity Framework entity representing a key-value pair with optional expiration.
DbKeyValueStore
Database-backed implementation of IKeyValueStore using Entity Framework Core.
DbKeyValueTrimmer
A background worker that periodically removes expired key-value entries from the database.
InMemoryKeyValueStore
An in-memory implementation of IKeyValueStore suitable for client-side use cases and testing.
SandboxedKeyValueStore<TContext>
Implementation of ISandboxedKeyValueStore that delegates to IKeyValueStore with session- and user-scoped key constraints.
ActualLab.Serialization.NerdbankMessagePack
ActualLab.Serialization
NerdbankMessagePackByteSerializer, NerdbankMessagePackByteSerializer<T>
An IByteSerializer implementation backed by Nerdbank.MessagePack with custom converters for Fusion types.
NerdbankMessagePackSerialized<T>
A ByteSerialized<T> variant that uses NerdbankMessagePackByteSerializer for serialization.
TypeDecoratingNerdbankMessagePackSerialized<T>
A ByteSerialized<T> variant that uses type-decorating Nerdbank.MessagePack serialization.
RpcNerdbankSerializationFormat
Registers nmsgpack6/nmsgpack6c RPC serialization formats backed by Nerdbank.MessagePack. Call Register() at startup to enable.
ActualLab.Redis
ActualLab.Redis
RedisSubBase
Abstract base class for Redis pub/sub subscribers, managing subscription lifecycle, timeout handling, and message dispatch.
RedisActionSub<T>
A Redis subscriber that deserializes messages to T and invokes a callback action for each received message.
RedisChannelSub<T>
A Redis subscriber that deserializes messages to T and writes them to a Channel<T> for asynchronous consumption.
RedisComponent<T>
Lazily resolves and caches a Redis component of type T (such as IDatabase or ISubscriber) from a RedisConnector, automatically reconnecting when needed.
RedisConnector
Manages a resilient connection to Redis with automatic reconnection, configurable retry delays, and a watchdog that detects disconnections.
RedisDb<TContext>, RedisDbExt
A typed RedisDb scoped by TContext for multi-context dependency injection.
RedisHash
Provides operations on a Redis hash data structure, including get, set, remove, increment, and clear.
RedisPub<T>
Publishes typed T messages to a Redis pub/sub channel using an IByteSerializer<T>.
RedisQueue<T>
A Redis-backed FIFO queue for typed T items with pub/sub-based enqueue notifications and serialization support.
RedisSequenceSet<TScope>
A typed RedisSequenceSet scoped by TScope for multi-context dependency injection.
RedisStreamer<T>
Provides streaming read/write operations over a Redis Stream for typed T items, with pub/sub-based change notifications.
RedisTaskSub<T>
A Redis subscriber that deserializes messages to T and exposes the next received message as an awaitable Task<T>.
ServiceCollectionExt
Extension methods for IServiceCollection to register RedisDb and RedisConnector services.
