Appearance
API Index (Condensed)
A condensed reference (~300 lines) of the most important types in ActualLab.Fusion. Use this to find existing abstractions before writing new code. See also: Full API Index (~1000 lines).
Core (ActualLab.Core) — PartCore.md
Result, Option, Requirement
Result<T>(struct) — computation result holding value or errorOption<T>(struct) — optional value (Some/None)Requirement<T>(record) — validates values and produces errors on failure
Time — PartCore-Time.md
Moment(struct) — UTC timestamp (wrapsDateTime)MomentClock— abstract clock producingMomenttimestampsCpuClock— monotonic high-resolution clock (Stopwatch-based)ServerClock— clock with offset from base clock (for client-side server time)SystemClock— real UTC clock viaDateTime.UtcNowCoarseSystemClock— low-overhead periodically-updated clockMomentClockSet— set of related clocks (system, CPU, server, coarse)TimerSet<T>— priority-based timer set backed by radix heapConcurrentTimerSet<T>— sharded concurrent version ofTimerSetTickSource— shared coalesced timer tick for multiple consumersRetryDelaySeq(record) — retry delay sequence (fixed/exponential backoff with jitter)
Collections — PartCore-PropertyBag.md
PropertyBag(struct) — immutable typed property bagMutablePropertyBag— thread-safe mutable property bag with change notificationsOptionSet— thread-safe mutable set of named optionsRingBuffer<T>(struct) — fixed-capacity circular buffer (power-of-2 capacity)ArrayBuffer<T>(struct) —ArrayPool-backed list-like buffer (zero alloc)ArrayOwner<T>— pooled array asIMemoryOwner<T>FixedArray0..16<T>(struct) — fixed-size inline stack arraysHashSetSlim1..4<T>(struct) — compact hash sets, inline before fallback toHashSetBinaryHeap<TPriority, TValue>— min-heapFenwickTree<T>— binary indexed tree for prefix sumsApiList<T>,ApiMap<TKey,TValue>,ApiSet<T>,ApiNullable<T>— serializable API contract collections
Async Primitives — PartCore-AsyncLock.md, PartCore-Worker.md
AsyncLock— semaphore-based async lock with optional reentry detectionAsyncLockSet<TKey>— keyed async lock setAsyncChain(record struct) — composable named async operation (retry, log, cancel)WorkerBase/IWorker— long-running background worker (start/stop)BatchProcessor<T, TResult>— dynamic-scale batched processingAsyncState<T>— linked-list async state transitions
Networking & Resilience — PartCore-Transiency.md
Transiency(enum) — error transiency classificationTransiencyResolver— classifies exceptions as transient/terminal/non-transientConnector<T>— persistent connection with auto-reconnectRetryDelayer— configurable retry delay with limitsRetryPolicy(record) — retry with try count, per-try timeout, delay sequenceChaosMaker(record) — chaos engineering fault injection
Serialization
IByteSerializer<T>/ITextSerializer<T>— core serialization interfacesByteSerialized<T>,TextSerialized<T>— auto-serializing wrappersTypeDecoratingSerializer(byte & text) — prefixes data with type info for polymorphismExceptionInfo— serializable exception snapshot
Specific serializers
MessagePackByteSerializer— MessagePack binary serializerMemoryPackByteSerializer— MemoryPack binary serializerNerdbankMessagePackByteSerializer— Nerdbank.MessagePack binary serializer (inActualLab.Serialization.NerdbankMessagePack)SystemJsonSerializer—System.Text.JsonimplementationNewtonsoftJsonSerializer— JSON.NET implementation
DI Helpers
ServiceResolver— encapsulates service type + optional custom resolverHostedServiceSet— manages group ofIHostedServiceas a wholeServiceCollectionExt/ServiceProviderExt— various DI extension methods
Text & IO — PartCore-Symbol.md
Symbol(struct) — interned string with fast equalityFilePath(struct) — cross-platform file path abstractionListFormat(struct) — delimiter-based list serialization/parsingBase64UrlEncoder— URL-safe Base64 encoding (RFC 4648)JsonString— raw JSON value wrapper
Identifiers & Versioning
HostId(record) — unique host identifierVersionGenerator<T>— abstract version generatorClockBasedVersionGenerator— monotoniclongversions from clock ticks
Reflection & Codegen
MemberwiseCopier— reflection-based property/field copier
Hashing & Sharding Helpers
ShardMap<TNode>— maps shards to nodes via consistent hashingHashRing<T>— consistent hash ring
RPC (ActualLab.Rpc) — PartR.md
IRpcService— marker for RPC-invocable servicesRpcStream<T>— typed RPC stream with batched deliveryRpcHub— central hub managing peers, services, configurationRpcPeer— one side of an RPC channel (connection, serialization, call tracking)RpcClientPeer/RpcServerPeer— client/server peer specializationsRpcConnection— wraps transport + properties for a single connectionRpcClient— establishes RPC connections to remote peersRpcWebSocketClient— client establishing connections via WebSocket
Service & Method Descriptors
RpcServiceRegistry— registry of all RPC service definitionsRpcServiceDef— describes a registered RPC service (type, mode, methods)RpcMethodDef— describes an RPC method (name, kind, serialization, timeouts)
Attributes
RpcMethodAttribute— configures RPC method properties (name, timeouts, local execution mode)LegacyNameAttribute— backward-compatible RPC name mapping with max version
Configuration
RpcBuilder(struct) — fluent builder for registering RPC services in DIRpcConfiguration— registered service builders + default service modeRpcLimits(record) — timeout/periodic limits for connections, keep-aliveRpcCallTimeouts(record) — connect/run/log timeouts for outbound callsRpcServiceMode(enum) — local, server, client, or distributed
RPC Server — [ActualLab.Rpc.Server]
RpcWebSocketServer— accepts WebSocket connections for ASP.NET Core
CommandR (ActualLab.CommandR) — PartC.md
ICommand<T>— command producing resultTICommander— main entry point for executing commands through handler pipelineCommandContext/CommandContext<T>— tracks execution state within pipelineCommandHandler(record) — handler descriptor in execution pipeline
Attributes
CommandHandlerAttribute— marks method as command handlerCommandFilterAttribute— marks method as command filter
Pipeline
CommandHandlerChain— ordered chain of filters + final handlerCommandHandlerFilter— filters which handlers are usedCommandHandlerRegistry— registry of all handlers, resolved from DI
Operations (used in Operations Framework)
Operation— recorded operation (completed command execution)OperationEvent— event recorded during an operation (for eventual consistency)IOperationScope— manages operation lifecycle within command pipelineNestedOperation(record) — nested command within parent operation
Configuration
CommanderBuilder(struct) — fluent builder for commander registrationICommandService— tagging interface for command service proxiesIEventCommand— event dispatched to multiple handler chains
Fusion (ActualLab.Fusion) — PartF.md
IComputeService— tagging interface for compute service proxiesComputed<T>— cached computation result with invalidation supportComputedOptions(record) — configuration for compute method behaviorComputedRegistry— global registry of allComputedinstances (weak refs, auto-prune)ComputeContext— tracks current compute call context
Attributes
ComputeMethodAttribute— marks method as compute method (auto-cache + invalidation)RemoteComputeMethodAttribute— extendsComputeMethodAttributewith remote computed caching config
States — PartF-ST.md
IState<T>/State— reactive state with computed valueComputedState<T>— state backed by a compute methodMutableState<T>— manually settable reactive stateStateFactory— creates state instancesStateSnapshot— immutable snapshot of state lifecycle
Invalidation
Invalidation— static helpers to check/begin invalidation scopesInvalidationSource(struct) — describes source of invalidationUpdateDelayer(record) — integrates withUIActionTrackerfor instant UI updatesFixedDelayer(record) — fixed update delay with configurable retry delays
Sessions
Session— authenticated user session (unique string Id)SessionFactory(delegate) — creates session instancesSessionResolver— resolves current sessionISessionCommand<T>— command scoped to a session
Remote/Client
RemoteComputed<T>—Computedpopulated from remote RPC callRemoteComputedCache— abstract base for remote computed caches
Builder
FusionBuilder(struct) — registers Fusion services in DI
Blazor (ActualLab.Fusion.Blazor) — PartB.md
Components
ComputedStateComponent<T>— Blazor component backed byComputedState<T>MixedStateComponent<T, TMutableState>— computed + mutable state componentFusionComponentBase— base component with custom parameter comparisonStatefulComponentBase<T>— component owning a typedIState<T>CircuitHubComponentBase— base component accessingCircuitHubservices
Attributes
FusionComponentAttribute— enables custom parameter comparison and event handling on a componentParameterComparerAttribute— assigns a customParameterComparerto a component parameter
UI Services — PartB-UICommander.md
UICommander— executes commands wrapped in trackedUIActionUIActionTracker— tracks running/completedUIActioninstancesUIAction<T>— strongly-typed tracked UI actionCircuitHub— scoped service caching Blazor & Fusion services (dispatcher, session, etc.)
Server-Side Services & Helpers
SessionMiddleware— resolves/createsSessionfrom cookiesFusionWebServerBuilder(struct) — configures RPC, session middleware, render modeServerAuthHelper— syncs ASP.NET Core auth state with FusionIAuth
Entity Framework (ActualLab.Fusion.EntityFramework) — PartEF.md
DbHub<TDbContext>— createsDbContextwith execution strategy and operation scopeDbServiceBase<TDbContext>— base for DB services withDbHubaccessDbContextBase—DbContextbase solving EF Core pooled disposal issuesDbEntityResolver<TDbContext, TKey, TDbEntity>— batched entity resolution viaBatchProcessorDbEntityConverter<TDbContext, TDbEntity, TModel>— entity-to-model conversion
Operations — PartO.md
DbOperationScope<TDbContext>— manages transaction, operation/event persistence, commitDbOperation— persisted operation entity for cross-host replicationDbEvent— persisted operation event entity with delayed processing
Sharding
DbShard— identifies a database shardDbShardResolver<TDbContext>— resolves shards fromSession,IHasShard,ISessionCommandDbShardRegistry<TContext>— maintains shard sets, tracks used shardsShardDbContextFactory<TDbContext>— per-shardDbContextfactory
Log Processing
DbLogReader<TDbContext, TKey, TDbEntry, TOptions>— shard-aware batched log readerDbLogWatcher<TDbContext, TDbEntry>— detects log changes per shardDbLogTrimmer— trims old log entries by ageDbOperationLogReader<TDbContext>— reads operation logs for cache invalidationDbEventLogReader<TDbContext>— reads event logs for command dispatch
Log Watcher Implementations
NpgsqlDbLogWatcher— PostgreSQL LISTEN/NOTIFYRedisDbLogWatcher— Redis pub/subFileSystemDbLogWatcher— file system watchersLocalDbLogWatcher— in-process notifications
Authentication — PartAA.md
Contracts
IAuth— primary auth service (sign-out, edit user, presence, session/user queries)IAuthBackend— backend auth (sign-in, session setup, options management)User(record) — authenticated/guest user with claims, identities, versionSessionInfo(record) — session details (version, timestamps, IP, user agent)SessionAuthInfo(record) — auth info for session (identity, user ID, forced sign-out)
Commands
AuthBackend_SignIn(record) — sign in with identityAuth_SignOut(record) — sign out sessionAuth_EditUser(record) — edit user profile
Blazor Auth
AuthStateProvider— Fusion-awareAuthenticationStateProviderClientAuthHelper— client-side sign-in/out via JS interop
Interceptors & Proxies (ActualLab.Interception) — PartAP.md
IProxy— proxy object with assignableInterceptorInterceptor— base class for method interceptorsMethodDef— describes an intercepted method (return type, params, async detection)Invocation(struct) — single intercepted method invocation (proxy, method, args, delegate)ArgumentList(record) — immutable argument list for intercepted calls (0..10 args)Proxies— factory for creating proxy instancesTypedFactoryInterceptor— resolves instances via DI (ActivatorUtilities)ScopedServiceInterceptor— resolves scoped service per callSchedulingInterceptor— schedules async invocations viaTaskFactory
Redis Helpers (ActualLab.Redis)
RedisConnector— resilient Redis connection with auto-reconnectRedisDb<T>— typed Redis DB scoped by contextRedisPub<T>— typed pub/sub publisherRedisQueue<T>— Redis-backed FIFO queueRedisStreamer<T>— streaming read/write over Redis StreamsRedisHash— Redis hash operations (get, set, remove, increment)RedisSubBase— abstract Redis pub/sub subscriber base
