alien-signals is a signal library that implements a push-pull based reactivity algorithm optimized for minimal bundle size and maximum performance.
The library solves the problem of efficient reactive state management by combining push and pull propagation strategies rather than relying on a single approach. The implementation deliberately imposes constraints such as avoiding Array, Set, and Map data structures and disallowing function recursion in the algorithmic core. The authors found that under these constraints, maintaining algorithmic simplicity delivers better performance gains than implementing complex scheduling strategies. The core algorithm draws inspiration from Vue 3's propagation approach, Preact's double-linked-list strategy, Svelte's effect scheduling, and Reactively's graph-coloring technique, synthesizing these ideas into a unified design.
Developers should choose this library if they need a lightweight reactivity system with strong performance characteristics and minimal overhead. It suits projects where bundle size matters and where the push-pull propagation model aligns with the application's update patterns. The tool is particularly relevant for those building frontend frameworks or language tools that require efficient incremental updates, as evidenced by its use in Vue language tools for incremental AST parsing and virtual code generation.
The project maintains active research and development, with the core algorithm having been ported back into Vue 3 itself, demonstrating validation of the approach within a major framework. The library has inspired implementations across multiple programming languages including Dart, Lua, Java, C#, Go, and Rust, indicating sustained interest in the algorithm beyond the original TypeScript implementation.