Skip to content
module@warp-drive/alien-signals

Reactivity for WarpDrive built on alien-signals, the push-pull signals algorithm that also powers Vue 3.6's reactivity. It has two entry points:

  • install configures WarpDrive to back its signals and memos with this package's graph. Import it once at the top of your application:

    ts
    import '@warp-drive/alien-signals/install';

    Other frameworks' install entry points imported after it, such as @warp-drive/ember/install, register their signals with the same graph instead of replacing it, so one store re-renders components in every framework on the page. Memoized values such as derived fields then only recompute when a signal WarpDrive manages changes, not when state that only a framework tracks, such as an Ember @tracked property, changes.

  • primitives exports the graph itself: signals, memos, and a Watcher that a framework integration uses to learn when the data it rendered changed. @warp-drive/react is built on it.

The graph implements what WarpDrive's signal hooks need rather than the full TC39 Signals API. If your app already uses the TC39 Signals polyfill, use @warp-drive/tc39-proposal-signals instead.

Guides ​

  • Setup: configure the build plugin and create a Store.
  • Reactivity: how WarpDrive uses signals, and the hooks that let it use any signals implementation.
  • Using Ember and React on the Same Page: share one store between frameworks by registering them with this package's graph.

Released under the MIT License.