NAGARE

WASM-first. 高速ストリーム処理ライブラリ for JavaScript/TypeScript

W WASM Accelerated
JIT Fusion
TS Full TypeScript

Quick Start

npmでインストールしてすぐに使い始められます

npm install @aid-on/nagare

Wave Diagrams

データの流れを波のように視覚化。各オペレーターの動作を直感的に理解できます

🔄

map

各要素を変換。シンプルで強力なデータ変換

source
1 2 3 4
↓ x * 2
output
2 4 6 8
🔍

filter

条件に合う要素だけを通過させる

source
1 2 3 4
↓ x % 2 === 0
output
· 2 · 4
📊

scan

累積値を計算しながらストリーム出力

source
1 2 3 4
↓ acc + x
output
1 3 6 10
🌊

merge

複数のストリームを1つに合流

stream A
1 3
stream B
2 4
merged
1 2 3 4
🛡️

rescue

エラーをキャッチしてフォールバック値を返す

source
1 3
↓ rescue(() => 0)
output
1 0 3
🔁

retry

失敗時に自動リトライ。指数バックオフ対応

attempt 1
fail
attempt 2
fail
attempt 3
1 2 3 success!

Simple & Powerful

直感的なAPIでストリーム処理を記述

import { nagare } from '@aid-on/nagare';

// シンプルなストリーム処理
const result = await nagare.of(1, 2, 3, 4, 5)
  .map(x => x * 2)
  .filter(x => x > 5)
  .toArray();

console.log(result); // [6, 8, 10]

// 集計も簡単
const sum = await nagare.range(1, 100).sum();
const avg = await nagare.range(1, 100).mean();

50+ Operators

RxJSライクな豊富なオペレーター群

map
変換
filter
フィルタ
scan
累積
take
取得
skip
スキップ
takeWhile
条件取得
skipWhile
条件スキップ
merge
合流
fork
分岐
reduce
畳み込み
sum
合計
mean
平均
min / max
最小/最大
groupBy
グループ化
flatten
平坦化
distinct
重複除去
pairwise
ペア化
tap
副作用
delay
遅延
timeout
タイムアウト
retry
リトライ
rescue
エラー回復
takeLast
末尾取得
skipLast
末尾スキップ

Performance

WASMとJIT Fusionで高速処理を実現

WASM
Accelerated Core
JIT
Operator Fusion
0
Dependencies

連続したmap/filterオペレーターを自動的に融合し、中間配列の生成を最小化