New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

flatsignals

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

flatsignals

FlatSignals is an extremely fast reactivity library (~0.5kb)

latest
npmnpm
Version
0.2.3
Version published
Weekly downloads
6
100%
Maintainers
1
Weekly downloads
 
Created
Source

FlatSignals

FlatSignals is an ultra-fast reactivity library (~0.5 KB) optimized for high-frequency, few-to-many updates.

🚀 Why it’s fast:

  • No graph traversals
  • O(1) dynamic dependency management
  • Lazy computations by default

Benchmarks

Note: Benchmarks were run in a controlled environment. Results may vary based on hardware and JavaScript engine. You can reproduce these benchmarks by cloning the repo and running pnpm bench.

1-to-64 fanout

LibraryOperations/sec ⚡vs flatsignals
flatsignals 🏆449,848baseline
alien-signals261,0821.72x slower
@preact/signals230,8991.95x slower
@reactively/core182,4032.47x slower
@vue/reactivity152,7092.95x slower
@maverick-js/signals137,7123.27x slower
Angular Signals98,5974.56x slower
@solidjs/signals78,8495.71x slower

High-frequency updates

LibraryOperations/sec ⚡vs flatsignals
flatsignals 🏆976,139baseline
alien-signals502,5131.94x slower
@preact/signals492,5431.98x slower
@reactively/core438,8822.22x slower
@maverick-js/signals343,3682.84x slower
Angular Signals241,1894.05x slower
@vue/reactivity221,5374.41x slower
@solidjs/signals202,4924.82x slower

Diamond

LibraryOperations/sec ⚡vs flatsignals
flatsignals 🏆4,556,987baseline
alien-signals3,028,3201.50x slower
@preact/signals2,531,7881.80x slower
@reactively/core1,688,0532.70x slower
Angular Signals1,614,4322.82x slower
@vue/reactivity1,563,8652.91x slower
@maverick-js/signals1,407,9753.24x slower
@solidjs/signals870,0805.24x slower

Installation

# npm
npm install flatsignals

# pnpm
pnpm add flatsignals

# yarn
yarn add flatsignals

Usage

import { signal, computed, effect } from "flatsignals";

const counter = signal(0);
const double = computed(() => counter.val * 2);
const log = effect(() => console.log(double.val));

With React

import { useFlatSignal, useFlatReader } from "flatsignals/react";
import { counter, double } from "./signals";

function MyCounter() {
  const [val, setVal] = useFlatSignal(counter);
  return <button onClick={() => setVal(val + 1)}>Count: {val}</button>;
}

function ReadDouble() {
  const val = useFlatReader(double);
  return <div>{val}</div>;
}

Use Case

Best suited for: Scenarios with a small number of reactive signals driving many dependent computations.

Limitations:

  • Signal limit: Maximum of 32 signals per root. Beyond this limit, effects may trigger even when their tracked signals haven't changed.
  • Set complexity: O(N) time proportional to dependent computations (amortized through batching)
  • Eager propagation: All downstream nodes marked dirty immediately, even when intermediate values unchanged

FAQs

Package last updated on 16 Nov 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts