Appearance
API Index (Full)
This document lists all public types (~1000 lines) in ActualLab.Fusion NuGet packages, organized by assembly and namespace. See also: Condensed API Index (~300 lines).
ActualLab.Core
ActualLab
ICanBeNone<out TSelf>,CanBeNoneExt- Strongly typed version ofICanBeNonethat exposes a staticNonevalue.IHasId<out TId>- An interface that indicates its implementor has an identifier of typeTId.IHasUuid- Similar toIHasId<TId>, but indicates theIdis universally unique.IMutableResult<T>- Describes strongly typedResultof a computation that 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 byRequireExttype.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 toLazy<T>with double-check locking.ParseOrNone(struct) - A unit-type constructor parameter indicating a parse-or-return-none semantic.Requirement(record) - Base class forRequirement<T>that validate values and produce errors on failure.Result(struct),ResultExt- Untyped result of a computation and some helper methods related toResult<T>type.ServiceException- A base exception type for service-level errors.Option- Helper methods related toOption<T>type.StaticLog- Provides globally accessibleILoggerinstances via a sharedILoggerFactory.ExceptionExt- Extension methods forExceptiontype and its descendants.KeyValuePairExt- Extension methods and helpers forKeyValuePair<TKey, TValue>.RequireExt- Extension methods for applyingRequirement<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 creatingApiArray<T>instances.ApiNullable,ApiNullable8,ApiNullableExt- Factory methods for creatingApiNullable<T>instances.ApiOption- Factory methods for creatingApiOption<T>instances.ApiCollectionExt- Extension methods for converting collections toApicollection 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-disposeasyncProcessorBase- 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 ensuresDisposeAsync(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 ofIBatchProcessorWorkerPolicywith configurable scaling thresholds.Temporary<T>(record struct) - Wraps a value together with aCancellationTokenindicating when the value is gone.AsyncEnumerableExt- Extension methods forIAsyncEnumerable<T>.AsyncTaskMethodBuilderExt- Extension methods forAsyncTaskMethodBuilder<TResult>andAsyncTaskMethodBuilder.CancellationTokenExt- Extension methods forCancellationToken.CancellationTokenSourceExt- Extension methods forCancellationTokenSource.ExecutionContextExt- Extension methods and helpers forExecutionContext.SemaphoreSlimExt- Extension methods forSemaphoreSlim.TaskExt- Extension methods and helpers forTaskandTask<TResult>.TaskCompletionSourceExt- Extension methods forTaskCompletionSource<TResult>.ValueTaskExt- Extension methods and helpers forValueTaskandValueTask<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 implementingIAsyncKeyResolver<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 byGenericInstanceCache.EmptyCache<TKey, TValue>- A no-op cache implementation that never stores or returns values.MemoizingCache<TKey, TValue>- An in-memory cache backed by aConcurrentDictionary<TKey, TValue>.RefHolder- Holds strong references to objects to prevent garbage collection, with concurrent access support.VoidSurrogate(record struct) - This type is used byGenericInstanceCacheclass to substitute void types.GenericInstanceCache- Thread-safe cache for instances produced byGenericInstanceFactorysubclasses.CacheExt- Extension methods forIAsyncKeyResolver<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>- ACustomChannel<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 forChannel<T>and related types.
ActualLab.Collections
IReadOnlyMutableDictionary<TKey, TValue>- A read-only view of a thread-safe mutable dictionary backed by anImmutableDictionary<TKey, TValue>.IReadOnlyMutableList<T>- A read-only view of a thread-safe mutable list backed by anImmutableList<T>.ArrayBuffer<T>(struct) - A list-like struct backed byArrayPool<T>that typically requires zero allocations. Designed for use as a temporary buffer in enumeration scenarios.ArrayOwner<T>- Wraps a pooled array as anIMemoryOwner<T>, returning the array to the pool on disposal.ArrayPoolBuffer<T>- A resizable buffer backed byArrayPool<T>that implementsIBufferWriter<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 ofIMutableDictionary<TKey, TValue>that wraps anImmutableDictionary<TKey, TValue>with lock-based thread safety.MutableList<T>- Default implementation ofIMutableList<T>that wraps anImmutableList<T>with lock-based thread safety.MutablePropertyBag- A thread-safe mutable property bag backed by an immutablePropertyBagwith atomic update operations and change notifications.OptionSet- A thread-safe mutable set of named options. Consider usingMutablePropertyBaginstead.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 ofArrayPoolBuffer<T>that avoids heap allocations. UseRelease()instead ofDispose().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 scopedVersionvalues, stored as a comma-separated string of scope=version pairs.ArrayPools- Provides static references to commonly usedArrayPool<T>instances.ArrayExt- Extension methods for arrays.BufferWriterExt- Extension methods forIBufferWriter<T>.CollectionExt- Extension methods forICollection<T>.ConcurrentDictionaryExt- Extension methods forConcurrentDictionary<TKey, TValue>, including lazy value initialization and atomic increment/decrement operations.EnumerableExt- Extension methods forIEnumerable<T>.ImmutableDictionaryExt- Extension methods forImmutableDictionary<TKey, TValue>.MemoryExt- Extension methods forReadOnlyMemory<T>andMemory<T>.PropertyBagExt- Extension methods forPropertyBagandMutablePropertyBag.ReadOnlyListExt- Extension methods forIReadOnlyList<T>.SpanExt- Extension methods forSpan<T>andReadOnlySpan<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 fullHashSet<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 fullHashSet<T>.ReferenceEqualityComparer<T>- AnIEqualityComparer<T>that compares reference type instances by reference identity rather than value equality.SafeHashSetSlim1<T> .. SafeHashSetSlim4<T>(struct) - A thread-safe compactIHashSetSlim<T>that stores up to N items inline before falling back to anImmutableHashSet<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 forIHasId<TId>that compares byId.VersionExt- Extension methods and helpers forVersion.
ActualLab.Concurrency
IHasTaskFactory- Indicates the implementing type exposes aTaskFactoryfor scheduling work.ConcurrentPool<T>- A thread-safe object pool backed by aConcurrentQueue<T>and aStochasticCounterfor approximate size tracking.DedicatedThreadScheduler- ATaskSchedulerthat 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 forInterlockedproviding atomic compare-and-swap patterns.
ActualLab.Conversion
IConvertibleTo<out TTarget>- An interface that indicates its implementor can be converted to typeTTarget.Converter<TSource>,ConverterProvider,ConverterExt- AConverterthat knows its source type at compile time.SourceConverterProvider<TSource>- Abstract base implementation ofISourceConverterProvider<TSource>.BiConverter<TFrom, TTo>(record struct) - A bidirectional converter that provides both forward and backward conversion functions.ServiceCollectionExt- Extension methods forIServiceCollectionto register converters.ServiceProviderExt- Extension methods forIServiceProviderto 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 anIServiceProviderinstance.IHasWhenDisposed,HasWhenDisposedExt- ExtendsIHasDisposeStatuswith a task that completes upon disposal.HostedServiceSet- Manages a group ofIHostedService-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 anIServiceProvider.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 forIConfigurationto bind and validate settings.ServiceCollectionExt- Extension methods forIServiceCollection.ServiceDescriptorExt- Extension methods forServiceDescriptor.ServiceProviderExt- Extension methods forIServiceProvider.ServiceResolverExt- Extension methods forServiceResolver.
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 forActivityto finalize activities with error status and handle disposal safely.ActivityContextExt- Extension methods forActivityContextto format W3C trace context headers.ActivitySourceExt- Extension methods forActivitySource.AssemblyExt- Extension methods forAssemblyto retrieve informational version.DiagnosticsExt- Utility methods for sanitizing metric and diagnostics names.LoggerExt- Extension methods forILoggerto check enabled log levels.TypeExt- Extension methods forTypeto construct diagnostics operation names.
ActualLab.Generators
ConcurrentGenerator<T>- A thread-safeGenerator<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- AUuidGeneratorthat producesGuid-based UUID strings.ProxyGenerator- An incremental source generator that creates proxy classes for types implementingIRequiresAsyncProxyorIRequiresFullProxyinterfaces.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>- AGenerator<T>that transforms the output of another generator using a provided function.UlidUuidGenerator- AUuidGeneratorthat 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, wrappingRandom.Sharedon .NET 6+ or a thread-localRandomfallback.
ActualLab.IO
ConsoleExt- Extension methods forConsoleproviding asynchronous console I/O.FileExt- Helper methods for reading and writing text files with configurable encoding.FilePathExt- Extension methods forFilePathproviding file/directory enumeration and text I/O.FileSystemWatcherExt- Extension methods forFileSystemWatcherproviding 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- AnIAsyncLock<TReleaser>implementation that uses a file system lock.SimpleAsyncLock- A lightweight async lock without reentry detection support.SemaphoreSlimExt- Extension methods forSemaphoreSlim.
ActualLab.Mathematics
Arithmetics<T>,ArithmeticsProvider- Provides basic arithmetic operations for typeT.PrimeSieve- A sieve of Eratosthenes implementation for computing and querying prime numbers.TileLayer<T>- A single layer of uniformly-sized tiles within aTileStack<T>.TileStack<T>- A hierarchical stack ofTileLayer<T>instances with increasing tile sizes.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 forGuidproviding formatting and conversion utilities.MathExt- Extended math utilities including clamping, GCD/LCM, factorial, and arbitrary-radix number formatting/parsing.RangeExt- Extension methods forRange<T>providing size, containment, intersection, and other range operations.
ActualLab.Net
Connector<TConnection>- Manages a persistent connection of typeTConnectionwith 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- DefaultIRetryDelayerimplementation 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 typeT.IResourceReleaser<in T>- Defines the contract for returning a resource of typeTback to its pool.Owned<TItem, TOwner>(struct) - Pairs an item with its disposable owner, disposing the owner on release.ResourceLease<T>(struct) - A struct-basedIResourceLease<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 ofMemberwiseClone.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.ExpressionExt- Extension methods forExpressionproviding conversion and member access helpers.FuncExt- Provides helpers for constructing genericActionandFunc<TResult>delegate types at runtime.ILGeneratorExt- Extension methods forILGeneratorproviding casting helpers.MemberInfoExt- Extension methods forMemberInfoproviding cached getter/setter delegate creation for properties and fields.MethodInfoExt- Extension methods forMethodInfoproviding attribute lookup with interface and base type inheritance.TypeExt- Extension methods forTypeproviding name formatting, base type enumeration, proxy resolution, and task type detection.
ActualLab.Requirements
CustomizableRequirement(record),CustomizableRequirementBase(record) - ARequirement<T>wrapper that delegates satisfaction checks to a base requirement and uses a customizableExceptionBuilderfor 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- DefaultIRetryPolicyimplementation 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 commonExceptionFilterinstances for transient, non-transient, terminal, and unconditional matching.TransiencyResolvers- Abstract base class forTransiencyResolver-s.ExceptionExt- Extension methods forExceptionrelated to resilience and service provider disposal detection.ServiceCollectionExt- Extension methods forIServiceCollectionto registerTransiencyResolver<TContext>instances.ServiceProviderExt- Extension methods forIServiceProviderto resolveTransiencyResolverinstances.TransiencyResolverExt- Extension methods forTransiencyResolver.
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 consistent hashing.
ActualLab.Serialization
IHasToStringProducingJson- Indicates that type'sToString()can be deserialized withSystem.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.Box<T>(record) - A serializable immutable box that wraps a single value of typeT.ByteSerialized<T>- A wrapper that auto-serializes itsValueto a byte array on access viaIByteSerializer.JsonString- A string wrapper representing a raw JSON value with proper serialization support.LegacyTypeDecoratingTextSerializer- A legacy variant ofTypeDecoratingTextSerializerthat uses list-format type decoration.MemoryPackByteSerializer<T>- A typedMemoryPackByteSerializerthat serializes values of typeT.MemoryPackSerialized<T>- AByteSerialized<T>variant that usesMemoryPackByteSerializerfor serialization.MessagePackByteSerializer<T>- A typedMessagePackByteSerializerthat serializes values of typeT.MessagePackSerialized<T>- AByteSerialized<T>variant that usesMessagePackByteSerializerfor serialization.MutableBox<T>- A serializable mutable box that wraps a single value of typeT.NewtonsoftJsonSerialized<T>- ATextSerialized<T>variant that usesNewtonsoftJsonSerializerfor serialization.NewtonsoftJsonSerializer- AnITextSerializerimplementation backed by Newtonsoft.Json (JSON.NET).RemoteException- Represents an exception that was serialized from a remote service and reconstructed fromExceptionInfo.SystemJsonSerialized<T>- ATextSerialized<T>variant that usesSystemJsonSerializerfor serialization.SystemJsonSerializer- AnITextSerializerimplementation backed bySystem.Text.Json.TextSerialized<T>- A wrapper that auto-serializes itsValueto a string on access viaITextSerializer.TypeDecoratingByteSerializer- AnIByteSerializerdecorator that prefixes serialized data with type information.TypeDecoratingMemoryPackSerialized<T>- AByteSerialized<T>variant that uses type-decorating MemoryPack serialization.TypeDecoratingMessagePackSerialized<T>- AByteSerialized<T>variant that uses type-decorating MessagePack serialization.TypeDecoratingNewtonsoftJsonSerialized<T>- ATextSerialized<T>variant that uses type-decorating Newtonsoft.Json serialization.TypeDecoratingSystemJsonSerialized<T>- ATextSerialized<T>variant that uses type-decoratingSystem.Text.Jsonserialization.TypeDecoratingTextSerializer- AnITextSerializerdecorator that prefixes serialized data with type information.ByteSerializer<T>,ByteSerializerExt- Provides static access to the default typedIByteSerializer<T>and factory methods.TextSerializer<T>,TextSerializerExt- Provides static access to the default typedITextSerializer<T>and factory methods.TypeDecoratingUniSerialized- Factory methods forTypeDecoratingUniSerialized<T>.UniSerialized- Factory methods forUniSerialized<T>.ExceptionInfoExt- Extension methods for convertingExceptiontoExceptionInfo.
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 usingListFormat.ListParser(struct) - A ref struct that parses a delimited string into individual items usingListFormat.ReflectionFormatProvider- AnIFormatProviderthat resolves format placeholders by reflecting on the argument's properties.StringAsSymbolMemoryPackFormatterAttribute- Attribute that appliesStringAsSymbolMemoryPackFormatterto 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 toByteString.CharSpanExt- Extension methods for computing XxHash3 hashes over character spans.DecoderExt- Extension methods forDecoder.EncoderExt- Extension methods forEncoder.EncodingExt- Provides commonly usedEncodinginstances.StringExt- Extension methods for string providing hashing and suffix trimming.StringBuilderExt- Provides thread-local pooling forStringBuilderinstances via Acquire/Release pattern.
ActualLab.Time
IGenericTimeoutHandler- Defines a handler that is invoked when a timeout fires.MomentClock- Abstract base class for clocks that produceMomenttimestamps and support time conversion and delay operations.CoarseSystemClock- AMomentClockthat returns a periodically updated time value viaCoarseClockHelper, trading precision for lower read overhead.ConcurrentFixedTimerSet<TItem>,ConcurrentFixedTimerSetOptions(record) - A concurrent, sharded version ofFixedTimerSet<TItem>that reduces lock contention by distributing items across multiple internal timer sets.ConcurrentTimerSet<TTimer>,ConcurrentTimerSetOptions(record) - A concurrent, sharded version ofTimerSet<TTimer>that reduces lock contention by distributing timers across multiple internal timer sets.CpuClock- AMomentClockbased on a high-resolutionStopwatch, providing monotonically increasing timestamps that do not drift with system clock adjustments.FixedTimerSet<TItem>,FixedTimerSetOptions(record) - Similar toTimerSet<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 anIGenericTimeoutHandlerwith an argument for use in timer sets.MomentClockSet- A set of relatedMomentClockinstances (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- AMomentClockthat applies a configurable offset to a base clock, typically used to approximate server time from the client.SystemClock- AMomentClockthat returns the current UTC time viaUtcNow.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-wideConcurrentTimerSet<TTimer>instances for keep-alive and generic timeout management.ClockExt- Extension methods forMomentClockproviding delay, timer, and interval operations.DateTimeExt- Extension methods forDateTimeprovidingMomentconversion and default kind assignment.DateTimeOffsetExt- Extension methods forDateTimeOffsetprovidingMomentconversion.MomentExt- Extension methods forMomentproviding null/default conversions and clock-based time conversion.ServiceProviderExt- Extension methods forIServiceProviderto resolveMomentClockSet.TimeSpanExt- Extension methods forTimeSpanproviding clamping, random jitter, and human-readable short string formatting.
ActualLab.Time.Testing
TestClock,TestClockSettings- AMomentClockfor testing that supports time offsetting, scaling, and on-the-fly settings changes with proper delay recalculation.UnusableClock- AMomentClockthat 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 currentVersion.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 formattinglongandulongvalues as compact base-32 version strings.ServiceProviderExt- Extension methods forIServiceProviderto resolve versioning services.
ActualLab.Versioning.Providers
ClockBasedVersionGenerator- AVersionGenerator<TVersion>that generates monotonically increasinglongversions based onMomentClockticks.
ActualLab.Interception
ActualLab.Interception
INotifyInitialized- Defines a callback invoked when a proxy is fully initialized.IProxy,ProxyExt- Represents a proxy object that can have anInterceptorassigned 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 anArgumentList.ArgumentListWriter- Abstract visitor for writing items into anArgumentList.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 genericArgumentListwith N arguments.ArgumentListS1 .. ArgumentListS10(record) - A non-generic (simple)ArgumentListwith N arguments stored as objects.ArgumentListType- Describes the type structure of anArgumentList, 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 forIRequiresAsyncProxybase types.ServiceCollectionExt- Extension methods forIServiceCollectionto register typed factories.ServiceProviderExt- Extension methods forIServiceProviderrelated to proxy activation.
ActualLab.Interception.Interceptors
SchedulingInterceptor- An interceptor that schedules async method invocations via aTaskFactoryresolved 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 throughActivatorUtilities.
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.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 ofLegacyNameentries, indexed by version for backward compatibility.RpcCallTimeouts(record) - Defines connect, run, and log timeouts for outbound RPC calls.RpcCallType(record) - Identifies an RPC call type and its corresponding inbound/outbound call implementation types.RpcClientPeer- Represents the client side of an RPC peer connection, handling reconnection logic.RpcClientPeerReconnectDelayer- Controls reconnection delay strategy forRpcClientPeerinstances.RpcConfiguration- Holds the set of registered RPC service builders and default service mode. Frozen afterRpcHubconstruction to prevent further modification.RpcConnection- Wraps anRpcTransportand associated properties for a single RPC connection.RpcException- Base exception type for RPC-related errors.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, and local execution mode.RpcMethodDef- Describes a single RPC method, including its name, kind, serialization, timeouts, and call pipeline.RpcOptionDefaults- The only purpose of this class struct is to offer extension point for extensions in other parts of Fusion applying overrides to differentRpcXxxOptions.Default.RpcPeerRef,RpcPeerRefExt- Reference to an RPC peer, encapsulating its address, connection kind, and versioning info.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.RpcRouteState,RpcRouteStateExt- Tracks the routing state of an RPC peer, signaling when a route change (reroute) occurs.RpcSerializationFormat,RpcSerializationFormatResolver(record) - Defines a named RPC serialization format with its argument and message serializer factories.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, and hashing.RpcRegistryOptions(record) - Configuration options for theRpcServiceRegistry, including service and method factories.RpcServiceBuilderSettings(record) - Base settings class for customizingRpcServiceBuilderbehavior.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 ofRpcCallTypeinstances, 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 createRpcFrameDelayerinstances for various delay strategies.RpcFrameDelayers- Provides static methods for creatingRpcFrameDelayerimplementations (yield, tick, delay).RpcInboundMiddlewarePriority- Well-known priority constants for orderingIRpcMiddlewareinstances in the pipeline.ServiceCollectionExt- Extension methods forIServiceCollectionto register RPC services.ServiceProviderExt- Extension methods forIServiceProviderto 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 aRpcCacheKeywith itsRpcCacheValue.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
RpcWebSocketClient,RpcWebSocketClientOptions(record) - AnRpcClientimplementation 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- DefaultRpcCallTracerthat 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- AnIRpcObjectthat 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.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 andRpcHub.RpcTransport- Base class for RPC transports that handle message serialization and sending.RpcHandshake(record) - Serializable handshake data exchanged between RPC peers during connection establishment.RpcInboundCall<TResult>- TypedRpcInboundCallthat sends the result asTResult.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>- TypedRpcOutboundCallthat creates a result source forTResult.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.RpcPeerConnectionState(record),RpcPeerConnectionStateExt- Immutable snapshot of an RPC peer's connection state, including handshake, transport, and error info.RpcRemoteObjectTracker- Tracks remoteIRpcObjectinstances using weak references, with periodic keep-alive signaling.RpcSharedObjectTracker- Tracks locally sharedIRpcSharedObjectinstances 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- AnRpcTransportbacked by simple in-memory channels, used for loopback connections.RpcSystemCallSender- Sends system-level RPC calls (handshake, ok, error, stream control) to a peer's transport.RpcSystemCalls- ImplementsIRpcSystemCallsto handle system-level RPC messages on the receiving side.RpcPolymorphicArgumentHandlerIsValidCallFunc(delegate) - Delegate for validating inbound calls with polymorphic arguments.RpcTransportSendHandler(delegate) - Delegate invoked byRpcTransportafter 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-inRpcTransportSendHandlerimplementations for common send completion scenarios.WellKnownRpcHeaders- Defines well-knownRpcHeaderKeyconstants for hash, version, and tracing headers.RpcHeadersExt- Extension methods for working with arrays ofRpcHeader.
ActualLab.Rpc.Middlewares
RpcArgumentNullabilityValidator(record) - AnIRpcMiddlewarethat validates non-nullable reference-type arguments on inbound RPC calls.RpcInboundCallDelayer(record) - AnIRpcMiddlewarethat introduces a configurable random delay before processing inbound RPC calls.RpcMiddlewareContext<T>- Carries theIRpcMiddlewarepipeline state for a specificRpcMethodDef.RpcMiddlewareOutput<T>(record struct) - Pairs anIRpcMiddlewarewith its resulting invoker delegate in the middleware pipeline.RpcRouteValidator(record) - AnIRpcMiddlewarethat 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 binaryRpcMessageSerializerimplementations 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-basedRpcMessageSerializerimplementations with shared size limits.NullValue- This type is used to serialize null values for polymorphic arguments. You shouldn't use it anywhere directly.RpcByteArgumentSerializerV4- V4 binaryRpcArgumentSerializerthat supports polymorphic argument serialization.RpcByteMessageSerializerV4,RpcByteMessageSerializerV5- V4 binary message serializer using LVar-encoded argument data length prefix.RpcByteMessageSerializerV4Compact- Compact variant ofRpcByteMessageSerializerV4that transmits method references as hash codes only.RpcByteMessageSerializerV5Compact- Compact variant ofRpcByteMessageSerializerV5that transmits method references as hash codes only.RpcTextArgumentSerializerV4- V4 text-basedRpcArgumentSerializerthat uses a unit-separator delimiter between arguments.RpcTextMessageSerializerV3- V3 JSON-based text message serializer that usesJsonRpcMessagefor the message envelope.RpcMessageSerializerReadFunc(delegate) - Delegate that reads anRpcInboundMessagefrom serialized byte data.RpcMessageSerializerWriteFunc(delegate) - Delegate that writes anRpcOutboundMessageinto a byte buffer.
ActualLab.Rpc.Testing
RpcTestClient,RpcTestClientOptions(record) - AnRpcClientimplementation 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 forRpcBuilderthat registerRpcTestClientfor in-memory testing.
ActualLab.Rpc.WebSockets
RpcWebSocketTransport- AnRpcTransportimplementation that sends and receives RPC messages over aWebSocketconnection.WebSocketOwner- Owns aWebSocketand its associatedHttpMessageHandler, disposing both on cleanup.WebSocketExt- Extension methods forWebSocketproviding cross-platform send and receive overloads.
ActualLab.Rpc.Server
ActualLab.Rpc.Server
RpcWebSocketServer,RpcWebSocketServerOptions(record),RpcWebSocketServerBuilder(struct) - Server-side handler that accepts incomingWebSocketconnections and establishes RPC peer connections for ASP.NET Core hosts.RpcWebSocketServerPeerRefFactory(delegate) - Delegate that creates anRpcPeerReffor aWebSocketserver connection based on theHttpContextand backend flag.RpcWebSocketServerDefaultDelegates- Provides default delegate implementations forRpcWebSocketServer, including the peer reference factory.AssemblyExt- Extension methods forAssemblyto discover Web API controller types.EndpointRouteBuilderExt- Extension methods forIEndpointRouteBuilderto map RPCWebSocketserver endpoints.HttpConfigurationExt- Extension methods forHttpConfigurationto configure dependency resolution usingIServiceCollection.RpcBuilderExt- Extension methods forRpcBuilderto add RPCWebSocketserver support.ServiceCollectionExt- Extension methods forIServiceCollectionto register Web API controllers as transient services.ServiceProviderExt- Extension methods forIServiceProviderto createIDependencyResolverinstances for Web API.
ActualLab.CommandR
ActualLab.CommandR
ICommand<TResult>,ICommandHandler<in TCommand>,CommandExt- A command that produces a result of typeTResult.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 byChainId.CommandContext<TResult>,CommandContextExt- A strongly-typedCommandContextfor commands producingTResult.CommandExecutionState(record struct) - Tracks the current position within aCommandHandlerChainduring command execution.ServiceCollectionExt- Extension methods forIServiceCollectionto register the commander.ServiceProviderExt- Extension methods forIServiceProviderto resolve commander services.
ActualLab.CommandR.Commands
IBackendCommand<TResult>- A generic variant ofIBackendCommandthat produces a typed result.IDelegatingCommand<TResult>- A generic variant ofIDelegatingCommandthat 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 withIsFilterset totrue).CommandHandlerAttribute,CommandHandlerResolver- Marks a method as a command handler, optionally specifying priority and filter mode.CommandHandlerChain- An ordered chain ofCommandHandlerinstances (filters and a final handler) that form the execution pipeline for a command.CommandHandlerRegistry- A registry of all registeredCommandHandlerinstances, resolved from the DI container at construction time.CommandHandlerSet- Holds all resolvedCommandHandlerChaininstances for a specific command type, supporting both regular commands and event commands with multiple chains.FuncCommandHandlerFilter- ACommandHandlerFilterbacked by a delegate function.InterfaceCommandHandler(record) - ACommandHandlerthat invokes a command via theICommandHandler<TCommand>interface on a resolved service.MethodCommandHandler(record) - ACommandHandlerthat invokes a command by calling a specific method on a resolved service instance.CommandHandlerResolverExt- Extension methods forCommandHandlerResolver.
ActualLab.CommandR.Diagnostics
CommandTracer- A command filter that creates OpenTelemetryActivityinstances for command execution and logs errors.CommanderInstruments- Provides OpenTelemetry instrumentation primitives for the commander pipeline.
ActualLab.CommandR.Interception
CommandHandlerMethodDef- AMethodDefspecialized for intercepted command handler methods, validating that the method signature conforms to expected patterns.CommandServiceInterceptor- AnInterceptorthat guards command service proxy calls, ensuring they are invoked only within an activeCommandContext.
ActualLab.CommandR.Operations
IOperationEventSource- Defines the contract for objects that can produce anOperationEvent.IOperationScope,OperationScopeExt- Defines the contract for an operation scope that manages the lifecycle of anOperationwithin 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 anOperation, typically used for eventual consistency and event replay.
ActualLab.CommandR.Rpc
RpcCommandHandler- A command filter that routes commands to remoteRpcPeerinstances or executes them locally, with automatic rerouting on topology changes.RpcInboundCommandHandler(record) - An RPC middleware that routes inbound RPC calls for commands through theICommanderpipeline instead of direct method invocation.
ActualLab.Fusion
ActualLab.Fusion
IComputeService,ComputeServiceExt- A tagging interface for Fusion compute service proxy types.IComputedStateOptions,ComputedState<T>- Configuration options forIComputedState.IMutableStateOptions,MutableState<T>- Configuration options forIMutableState.ISessionCommand<TResult>,SessionCommandExt- A strongly-typedISessionCommandthat returns a result of typeTResult.IStateOptions<T>,State,StateFactory,StateOptions<T>(record),StateExt- Strongly-typedIStateOptionswith initial output of typeT.CallOptions(enum) - Defines flags controlling how a compute method call is performed.ConsistencyState(enum),ConsistencyStateExt- Defines the consistency state of aComputedinstance.InvalidationSourceFormat(enum) - Defines formatting options for displayingInvalidationSourcevalues.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 aState.ComputeFunction,ComputeFunctionExt- Base class for functions that produceComputedinstances with lock-based concurrency control.Computed<T>,ComputedOptions(record),ComputedExt- A strongly-typedComputedthat holds aResult<T>output value.ComputedInput- Represents the input (arguments) of a compute function, serving as the key for looking upComputedinstances in theComputedRegistry.ComputedSynchronizer- Provides synchronization logic forComputedinstances, 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 itsComputedoutput.ComputedRegistry- A global registry that stores and manages allComputedinstances using weak references, with automatic pruning of collected entries.ComputedSource<T>,ComputedSourceExt- A strongly-typedComputedSourcethat producesComputed<T>values.ConsolidatingComputed<T>- AComputedthat implementsIsConsolidatingbehavior.DefaultSessionFactory- Provides factory methods that createSessionFactorydelegates producingSessioninstances with random string identifiers.FixedDelayer(record) - AnIUpdateDelayerwith a fixed update delay and configurable retry delays.InvalidationSource(struct) - Describes the source (origin) of aComputedinvalidation, which can be a code location, a string label, or a reference to anotherComputed.RemoteComputeMethodAttribute- Marks a method as a remote compute method, extendingComputeMethodAttributewith 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>- AComputed<T>produced by and bound to aState, notifying the state on invalidation.StateSnapshot- An immutable snapshot of aState's lifecycle, capturing the currentComputed, update count, error count, and retry count.UpdateDelayer(record) - AnIUpdateDelayerthat integrates withUIActionTrackerto 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 anIServiceCollection.FusionRpcServiceBuilder- A Fusion-specificRpcServiceBuilderthat adds compute service proxy creation and command handler registration support.SessionValidator(delegate) - A delegate that determines whether aSessionis valid.ComputedVersion- Generates globally unique, monotonically increasing version numbers forComputedinstances 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 forIServiceCollectionto register Fusion services.ServiceProviderExt- Extension methods forIServiceProviderto access Fusion services.StateFactoryExt- Extension methods forStateFactory.
ActualLab.Fusion.Blazor
IHasCircuitHub- Indicates that the implementing type has access to aCircuitHubinstance.IStatefulComponent<T>,StatefulComponentBase<T>- Defines a Blazor component that owns a typedIState<T>instance.ComputedStateComponentOptions(enum),ComputedStateComponent<T>- Defines option flags forComputedStateComponentcontrolling recomputation, rendering, and dispatch behavior.ParameterComparisonMode(enum),ParameterComparisonModeExt- Defines the parameter comparison strategy for Blazor Fusion components.CircuitHubComponentBase- Base class for Blazor components that accessCircuitHuband 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 aMutableState<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>- AParameterComparerthat compares parameters by both Id and Version.ByIdParameterComparer<TId>- AParameterComparerthat compares parameters by their Id.ByNoneParameterComparer- AParameterComparerthat always considers parameters equal (never triggers re-render).ByRefParameterComparer- AParameterComparerthat compares parameters by reference equality.ByUuidAndVersionParameterComparer<TVersion>- AParameterComparerthat compares parameters by both Uuid and Version.ByUuidParameterComparer- AParameterComparerthat compares parameters by their Uuid.ByValueParameterComparer- AParameterComparerthat compares parameters usingEquals(object, object).ByVersionParameterComparer<TVersion>- AParameterComparerthat compares parameters by their Version.CircuitHub-CircuitHubis a scoped service caching a set of most frequently used Blazor & Fusion services. In addition to that, it enables access to BlazorDispatcherand provides information about the currentRenderMode.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 asCircuitHub,UICommander, and JS runtime info.ComponentExt- Low-level extension methods forComponentBaseproviding access to internal Blazor fields (render handle, initialization state) and dispatcher operations.ComputedStateComponentOptionsExt- Extension methods forComputedStateComponentOptions.FusionBuilderExt- Extension methods forFusionBuilderto add Blazor integration.
ActualLab.Fusion.Client
RemoteComputed<T>,RemoteComputedExt- AComputed<T>that is populated from a remote RPC compute call and tracks synchronization state with the server.
ActualLab.Fusion.Client.Caching
FlushingRemoteComputedCache- ARemoteComputedCachethat 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 ofFlushingRemoteComputedCache.SharedRemoteComputedCache- AnIRemoteComputedCachewrapper that delegates to a shared singletonRemoteComputedCacheinstance.
ActualLab.Fusion.Client.Interception
RemoteComputeMethodFunction<T>- A strongly-typedRemoteComputeMethodFunctionthat createsRemoteComputed<T>instances for remote compute method calls.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 monitorsComputedRegistryaccess and registration statistics, periodically logging them for diagnostics.FusionInstruments- Provides sharedActivitySourceandMeterinstances 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 theIKeyValueStore.KeyValueStore_Set(record) - Backend command to set one or more key-value entries in theIKeyValueStore.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 theISandboxedKeyValueStore.SandboxedKeyValueStore_Set(record) - Command to set one or more key-value entries in theISandboxedKeyValueStore.EnumerableExt- Extension methods forIEnumerable<T>supporting ordering and pagination.FusionBuilderExt- Extension methods forFusionBuilder.QueryableExt- Extension methods forIQueryable<T>supporting ordering and pagination.
ActualLab.Fusion.Interception
IComputedMethodComputed- A tagging interface forComputedinstances produced by compute methods.ComputeMethodComputed<T>- AComputed<T>produced by a compute method interception, which auto-registers and unregisters itself inComputedRegistry.ComputeMethodDef- Describes a compute method, including itsComputedOptionsand optional consolidation configuration.ComputeMethodFunction<T>- A strongly-typedComputeMethodFunctionthat createsComputeMethodComputed<T>instances.ComputeMethodInput- AComputedInputrepresenting the arguments of an intercepted compute method call.ComputeServiceInterceptor- An interceptor that routes compute method calls throughComputeMethodFunctionto produce cachedComputedvalues.ComputedOptionsProvider- ResolvesComputedOptionsfor compute methods, adjusting cache settings based on the availability ofIRemoteComputedCache.ConsolidatingComputeMethodFunction<T>- A strongly-typedConsolidatingComputeMethodFunctionthat createsConsolidatingComputed<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 ofICompletion<TCommand>carrying the completed operation.OperationCompletionNotifier- DefaultIOperationCompletionNotifierthat deduplicates operations by UUID and dispatches to allIOperationCompletionListenerinstances.
ActualLab.Fusion.Operations.Reprocessing
OperationReprocessor,OperationReprocessorExt- Tries to reprocess commands that failed with a reprocessable (transient) error. Must be a transient service.
ActualLab.Fusion.Rpc
RpcComputeMethodDef- AnRpcMethodDeffor compute methods, carryingComputedOptionsand using the Fusion-specific RPC call type.RpcComputeServiceDef- AnRpcServiceDefforIComputeServicetypes, providing access toComputedOptionsProvider.RpcInboundComputeCallHandler- An RPC middleware that wraps inbound compute method calls in aComputeContextto capture the resultingComputedinstance.RpcOptionsExt- Extension methods forRpcOptionDefaults.RpcRegistryOptionsExt- Extension methods forRpcRegistryOptionsthat apply Fusion-specific overrides.
ActualLab.Fusion.Testing
ComputedTest- Test helpers that repeatedly evaluate an assertion inside aComputedSource<T>until it passes or a timeout is reached.
ActualLab.Fusion.UI
UIAction<TResult>- A strongly-typedUIActionthat produces aUIActionResult<T>upon completion.UIActionFailureTracker- Tracks failedUIActionresults, deduplicating recent errors of the same type and message.UIActionResult<T>- A strongly-typedIUIActionResultcarrying the result of aUIAction<TResult>.UIActionTracker- Tracks running and completedUIActioninstances, enablingUpdateDelayerto provide instant updates during user interactions.UICommander- A command executor for UI layers that wraps each command in a trackedUIActionand registers it with theUIActionTracker.ServiceProviderExt- Extension methods forIServiceProviderto resolve UI-related Fusion services.
ActualLab.Fusion.Server
ActualLab.Fusion.Server
DefaultDependencyResolver- AnIDependencyResolverimplementation that delegates to anIServiceProviderfor Web API dependency injection.JsonifyErrorsAttribute- An MVC exception filter that serializes exceptions as JSON error responses.TextMediaTypeFormatter- AMediaTypeFormatterthat handles plain text (text/plain) content for Web API endpoints.UseDefaultSessionAttribute- A Web API action filter that replaces default sessions inISessionCommandarguments 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 forIApplicationBuilderto configure Fusion middleware.EndpointRouteBuilderExt- Extension methods forIEndpointRouteBuilderto map Fusion render mode endpoints.FusionBuilderExt- Extension methods forFusionBuilderto add Fusion web server services.HttpActionContextExt- Extension methods forHttpActionContextto access per-request item storage in .NET Framework Web API.HttpContextExt- Extension methods forIDependencyScopeandHttpActionContextto simplify service resolution in Web API.ServiceCollectionExt- Extension methods forIServiceCollectionto 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 aSessionfrom cookies and makes it available viaISessionResolver.HttpContextExtractors- Provides factory methods for creatingHttpContext-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 currentSessionBoundRpcConnection.SessionBoundRpcConnection- AnRpcConnectionthat carries an associatedSession, enabling server-side session resolution for inbound RPC calls.RpcOptionsExt- Extension methods forRpcOptionDefaultsto apply Fusion server overrides.RpcPeerOptionsExt- Extension methods forRpcPeerOptionsto 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 pooledDbContexts rendering them unusable after disposal. Details: https://github.com/dotnet/efcore/issues/26202DbEntityConverter<TDbContext, TDbEntity, TModel>- Abstract base forIDbEntityConverter<TDbEntity, TModel>implementations that provides defaultToEntityandToModelconversion logic.DbProcessorBase<TDbContext>- Abstract base for database processors scoped to a specificTDbContext, with lazy access toDbHub<TDbContext>.DbServiceBase<TDbContext>- Abstract base for database services scoped to a specificTDbContext, with lazy access toDbHub<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 specificTDbContext, with access toDbHub<TDbContext>.DbCustomHint(record) - ADbHintcontaining a custom SQL hint string passed directly to the formatter.DbEntityResolver<TDbContext, TKey, TDbEntity>- This type queues (when needed) & batches calls toGetwithBatchProcessor<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>- TypedIDbHubimplementation for a specificTDbContext, providingDbContextcreation with execution strategy suspension and operation scope integration.DbLockingHint(record) - ADbHintrepresenting row-level locking modes (e.g., Share, Update).DbShardResolver<TDbContext>,DbShard- DefaultIDbShardResolver<TDbContext>that resolves shards fromSession,IHasShard, andISessionCommandobjects.DbShardRegistry<TContext>- DefaultIDbShardRegistry<TContext>implementation that maintains shard sets, tracks used shards, and computes event processor shards.DbWaitHint(record) - ADbHintrepresenting lock wait behavior (e.g., NoWait, SkipLocked).ShardDbContextFactory<TDbContext>,ShardDbContextBuilder<TDbContext>(struct) - DefaultIShardDbContextFactory<TDbContext>implementation that caches per-shardIDbContextFactory<TDbContext>instances built by aShardDbContextFactoryBuilder<TDbContext>.DbOperationsBuilder<TDbContext>(struct) - A builder for configuring database operation services such as operation scopes, log readers, log trimmers, and completion listeners for a specificDbContext.DbIsolationLevelSelector<TDbContext>(delegate) - A delegate that selects theIsolationLevelfor a givenCommandContextscoped to a specificDbContexttype.ShardDbContextFactoryBuilder<TDbContext>(delegate) - A delegate that builds anIDbContextFactory<TDbContext>for a given shard.DbHintSet- Provides commonly usedDbHintarrays for query locking and wait behavior.DbKey- Helper for composing composite primary key values for Entity Framework lookups.ActivityExt- Extension methods forActivityto add shard-related tags.DbContextOptionsBuilderExt- Extension methods forDbContextOptionsBuilderto register anIDbHintFormatterimplementation.DbEntityResolverExt- Extension methods forIDbEntityResolver<TKey, TDbEntity>providing single-shard shortcuts and batch entity retrieval helpers.DbSetExt- Extension methods forDbSet<TEntity>providing query hint application and row-level locking shortcuts.FusionBuilderExt- Extension methods forFusionBuilderto register globalDbIsolationLevelSelectorinstances.IsolationLevelExt- Extension methods forIsolationLevelproviding combinators such asOrandMax.ServiceCollectionExt- Extension methods forIServiceCollectionto registerDbContextBuilder<TDbContext>services and transientDbContextfactories.ServiceProviderExt- Extension methods forIServiceProviderto resolve common Fusion EntityFramework services such asDbHub<TDbContext>and entity resolvers.
ActualLab.Fusion.EntityFramework.LogProcessing
IDbEventLogEntry- ExtendsIDbLogEntrywith aDelayUntiltimestamp for timed event log entries.IDbIndexedLogEntry- ExtendsIDbLogEntrywith 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 onMaxEntryAge.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 withIDbLogWatcher<TDbContext, TDbEntry>.DbLogWatcher<TDbContext, TDbEntry>- Abstract base forIDbLogWatcher<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 onMaxEntryAge.FakeDbLogWatcher<TDbContext, TDbEntry>- A no-opIDbLogWatcher<TDbContext, TDbEntry>placeholder that logs a warning about missing watcher configuration. Change notifications rely on periodic polling.FileSystemDbLogWatcher<TDbContext, TDbEntry>,FileSystemDbLogWatcherOptions<TDbContext>(record) - AnIDbLogWatcher<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 aWhenChangedtask 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>- ProcessesOperationEventinstances stored asDbEvententries, dispatching command events via theICommander.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<TDbContext>,DbOperationScopeProvider- A typedDbOperationScopebound to a specificDbContext, managing the transaction lifecycle, operation/event persistence, and commit verification.
ActualLab.Fusion.EntityFramework.Operations.LogProcessing
DbEventLogReader<TDbContext>- Reads and processesDbEventlog entries, dispatching them throughDbEventProcessor<TDbContext>.DbEventLogTrimmer<TDbContext>- Trims processed and discardedDbEvententries that exceed the configured maximum age.DbOperationLogReader<TDbContext>- Reads and processesDbOperationlog entries, notifying remote hosts about completed operations for cache invalidation.DbOperationLogTrimmer<TDbContext>- Trims oldDbOperationlog entries that exceed the configured maximum age.
Microsoft.EntityFrameworkCore
IDbContextFactory<out TContext>- Defines a factory for creatingDbContextinstances. A service of this type is registered in the dependency injection container by theAddDbContextPoolmethods.IndexAttribute- FakeIndexAttributeis used only to keep models the same for all targets.RelationalDatabaseFacadeExtensions- Provides methods to set the underlyingDbConnectionon aDatabaseFacadevia reflection (NETSTANDARD2_0 compatibility shim).
Microsoft.Extensions.DependencyInjection
EntityFrameworkServiceCollectionExtensions- Extension methods for setting up Entity Framework related services in anIServiceCollection.
ActualLab.Fusion.EntityFramework.Npgsql
ActualLab.Fusion.EntityFramework.Npgsql
NpgsqlDbLogWatcher<TDbContext, TDbEntry>,NpgsqlDbLogWatcherOptions<TDbContext>(record) - AnIDbLogWatcher<TDbContext, TDbEntry>that uses PostgreSQL LISTEN/NOTIFY to detect database log changes across hosts.DbContextOptionsBuilderExt- Extension methods forDbContextOptionsBuilderto register the PostgreSQL-specificNpgsqlDbHintFormatter.DbOperationsBuilderExt- Extension methods forDbOperationsBuilder<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) - AnIDbLogWatcher<TDbContext, TDbEntry>that uses Redis pub/sub to detect database log changes across hosts.DbContextBuilderExt- Extension methods forDbContextBuilder<TDbContext>to register Redis database connections for use with Fusion EntityFramework services.DbOperationsBuilderExt- Extension methods forDbOperationsBuilder<TDbContext>to register the Redis pub/sub-based operation log watcher.
ActualLab.Fusion.Blazor.Authentication
ActualLab.Fusion.Blazor.Authentication
AuthState,AuthStateProvider- ExtendsAuthenticationStatewith Fusion'sUsermodel 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 theIAuthservice.FusionBlazorBuilderExt- Extension methods forFusionBlazorBuilderto 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 viaUpdatePresence.ServerAuthHelper- Server-side helper that synchronizes ASP.NET Core authentication state with Fusion'sIAuthservice 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(struct) - Builder for configuring database-backed authentication services, including repositories, entity converters, and session trimmer.EndpointRouteBuilderAuthExt- Extension methods forIEndpointRouteBuilderto map Fusion authentication endpoints.FusionBuilderExt- Extension methods forFusionBuilderto register authentication client services.FusionMvcWebServerBuilderExt- Extension methods forFusionMvcWebServerBuilderto register MVC-based authentication controllers.FusionWebServerBuilderExt- Extension methods forFusionWebServerBuilderto register authentication endpoints and server auth helpers.HttpContextExt- Extension methods forHttpContextto 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 toAuthEndpoints.
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 theIAuthandIAuthBackendcontract methods.DbSessionInfoTrimmer<TDbContext>- Abstract base class for a background worker that trims 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 betweenDbSessionInfo<TDbUserId>entities andSessionInfomodels.DbSessionInfoRepo- Default database repository for session info entities, supporting CRUD operations and trimming of expired sessions.DbUser<TDbUserId>- Entity Framework entity representing a user record in the database, with claims and identity associations.DbUserConverter<TDbContext, TDbUser, TDbUserId>- Converts betweenDbUser<TDbUserId>entities andUsermodels.DbUserIdHandler<TDbUserId>- Default implementation ofIDbUserIdHandler<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 ofIAuthandIAuthBackendfor 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 ofIKeyValueStoreusing Entity Framework Core.DbKeyValueTrimmer- A background worker that periodically removes expired key-value entries from the database.InMemoryKeyValueStore- An in-memory implementation ofIKeyValueStoresuitable for client-side use cases and testing.SandboxedKeyValueStore<TContext>- Implementation ofISandboxedKeyValueStorethat delegates toIKeyValueStorewith session- and user-scoped key constraints.
ActualLab.Serialization.NerdbankMessagePack
ActualLab.Serialization
NerdbankMessagePackByteSerializer,NerdbankMessagePackByteSerializer<T>- AnIByteSerializerimplementation backed by Nerdbank.MessagePack with custom converters for Fusion types.NerdbankMessagePackSerialized<T>- AByteSerialized<T>variant that usesNerdbankMessagePackByteSerializerfor serialization.TypeDecoratingNerdbankMessagePackSerialized<T>- AByteSerialized<T>variant that uses type-decorating Nerdbank.MessagePack serialization.RpcNerdbankSerializationFormat- Registersnmsgpack6/nmsgpack6cRPC serialization formats backed by Nerdbank.MessagePack. CallRegister()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 toTand invokes a callback action for each received message.RedisChannelSub<T>- A Redis subscriber that deserializes messages toTand writes them to aChannel<T>for asynchronous consumption.RedisComponent<T>- Lazily resolves and caches a Redis component of typeT(such asIDatabaseorISubscriber) from aRedisConnector, 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 typedRedisDbscoped byTContextfor multi-context dependency injection.RedisHash- Provides operations on a Redis hash data structure, including get, set, remove, increment, and clear.RedisPub<T>- Publishes typedTmessages to a Redis pub/sub channel using anIByteSerializer<T>.RedisQueue<T>- A Redis-backed FIFO queue for typedTitems with pub/sub-based enqueue notifications and serialization support.RedisSequenceSet<TScope>- A typedRedisSequenceSetscoped byTScopefor multi-context dependency injection.RedisStreamer<T>- Provides streaming read/write operations over a Redis Stream for typedTitems, with pub/sub-based change notifications.RedisTaskSub<T>- A Redis subscriber that deserializes messages toTand exposes the next received message as an awaitableTask<T>.ServiceCollectionExt- Extension methods forIServiceCollectionto registerRedisDbandRedisConnectorservices.
