Omni Async

Framework-independent asynchronous state for TypeScript.

Omni Async keeps request state, concurrency, cancellation, and notifications in a small core operation. React, Vue, and Svelte adapters expose the same behavior through each framework's native reactivity model.

Get started

Create your first async operation or framework query.

Understand state

Learn the state lifecycle, concurrency modes, and cancellation behavior.

Choose an adapter

Use Omni Async with React, Vue, or Svelte.

API reference

Browse the core types and options.

Why Omni Async?

  • One state engine — adapters share the same tested lifecycle semantics.
  • Separate state fields — consume data, error, loading state, and status independently.
  • Typed parameters and data — handlers determine trigger arguments and result types.
  • Explicit concurrency — keep all requests active or let only the latest update state.
  • Cancellation — abort supported work and prevent stale requests from updating state.
  • Custom equality — suppress notifications when an update is not meaningful to your application.

Packages

PackagePurpose
@omni-async/coreDependency-free async operation primitive
@omni-async/reactReact hooks backed by useSyncExternalStore
@omni-async/vueVue composables backed by refs and computed state
@omni-async/svelteSvelte readable stores and lifecycle helpers

Continue with the quick start.