Prolly:コンテンツアドレス方式の順序付きマップを実装したRustライブラリ
Prolly: A content-addressed ordered map built on prolly trees
GitHubで公開されたRust製ライブラリ「Prolly」は、prollyツリーに基づくコンテンツアドレス方式の順序付きマップを提供します。不変スナップショット、安価なブランチ、構造共有、効率的な差分・マージ、同期プリミティブ、検証可能なキー/レンジ証明を実現します。非同期エンジンを基盤としつつ、同期APIも提供。メモリ、SQLite、RocksDBなどプラグイン可能なストレージを備え、CRDTスタイルのマージやバージョン管理、二次インデックス、近傍探索など高度な機能も含みます。
すべての更新APIは永続的です。ストアが参照するノードを保持している限り、古いTreeハンドルは有効なままです。
- conartist6
同様のprolly実装をJavaScriptで進めています。メインのAPI抽象化にはJSのsplice()契約をそのまま使いました。これはprollyツリーに完璧にマッピングできます。既にバルク挿入と削除をサポートしているからです: https://github.com/bablr-lang/agast-helpers/blob/7225f30e5e5...
Prollyツリーには他にも奇妙な特性があります。例えば、prollyツリーから値を削除すると、開始時よりもノード数が増えることがあります。逆に値を挿入するとノード数が減ることもあります。
- timsehn
私はリンク先のProlly Treeの記事の著者で、先週prollyツリーのビジュアライザーを公開しました。
便利なことに: https://www.prollytree.com
- rfgplk
SIMDアクセラレーションでsse2のみを対象にしている理由はありますか?かなりのパフォーマンスを無駄にしていますよ。