**「メメント=スナップショット保存→後で復元」**の発想を実務で採っている(または公式にそう表明している)GitHub上のOSSを、分野別に手早く把握できるよう整理した一覧です。
データベース(典型的“スナップショット=メメント”)
-
RocksDB – Snapshot API:DBの時点コピーを取得・参照・解放する仕組み。読み取り一貫性の確保に使われ、まさにメメントの実用版。GitHub+2GitHub+2
フロントエンド状態管理(タイムトラベル=履歴メメント)
-
redux-undo:既存リデューサーを past/present/future スタックで拡張し Undo/Redo を実装。GitHub
-
redux-time-travel:Redux 全体/一部スライスの時間移動(Undo/Redo)を提供。GitHub
-
use-history-reducer:Immerベースでチェックポイント・分岐まで扱う履歴リデューサー。GitHub
-
Redux DevTools:アクション列を再生して任意時点に復帰(開発時の“メメント”)。redux.js.org
-
blazor-redux:DevTools 連携で状態の保存/読込・リセット=時点復帰が可能。GitHub
-
redux-memento:Redux Toolkit 向けに Undo/Redo を提供する名前そのままのライブラリ。GitHub
ゲーム/エディタ系(Undo/Redo をメメントとして明言)
-
GodotUndoRedo(アドオン):“Memento パターンに基づく” Undo/Redo ノードを提供。GitHub
コラボ編集・分岐履歴
-
undomundo:分岐する履歴/タイムトラベルを扱う汎用 Undo ライブラリ(Figma 記事を参照)。GitHub
.NET / Blazor
-
le-nn/memento:Blazor 向けのUndo/Redo+DevTools対応ステート管理。名称どおり。GitHub
実装の“落とし穴”や設計議論(差分vs全量)
-
easy-peasy の Issue:パッチ(差分)保存で履歴を軽量化できるか、実務的な議論。GitHub
関連トピックでまとめて探す(GitHub Topics)
-
TypeScript: undo、C#: undo-redo などのトピックから、履歴スタック実装を横断検索。GitHub+1
使い分けメモ
-
名称に“Memento”が出てこなくても、実態が「状態スナップショット保存→復元」ならメメント発想です(DBの Snapshot、Redux の past/present/future、エディタの Undo スタックなど)。
-
実務では全量コピーより差分(patch)や圧縮、履歴上限を併用するのが一般的(上記 Issue 参照)。GitHub