[PR #2026] [MERGED] feat: Optionally use murmurhash3 instead of sha256 #1984

Closed
opened 2026-02-25 23:31:26 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/floccusaddon/floccus/pull/2026
Author: @marcelklehr
Created: 8/12/2025
Status: Merged
Merged: 8/13/2025
Merged by: @marcelklehr

Base: developHead: feat/murmur3


📝 Commits (5)

  • 911beed refactor: Optionally support murmur3 + implement capabilities negotiation
  • 49c0c42 fix: Try to fix tests
  • 36cf98d fix(NextcloudBookmarks): Partial tree loading was broken
  • 05c9306 tests: Fix withSyncConnection to provide hash settings
  • 8c88dad tests: Remove IS_CI variable

📊 Changes

20 files changed (+273 additions, -65 deletions)

View changed files

📝 src/lib/CachingTreeWrapper.ts (+9 -1)
📝 src/lib/Crypto.ts (+8 -0)
📝 src/lib/LocalTabs.ts (+13 -1)
📝 src/lib/Scanner.ts (+8 -7)
📝 src/lib/Tree.ts (+46 -21)
📝 src/lib/adapters/Caching.ts (+13 -1)
📝 src/lib/adapters/Git.ts (+2 -2)
📝 src/lib/adapters/GoogleDrive.ts (+2 -2)
📝 src/lib/adapters/Karakeep.ts (+13 -1)
📝 src/lib/adapters/Linkwarden.ts (+13 -1)
📝 src/lib/adapters/NextcloudBookmarks.ts (+19 -4)
📝 src/lib/adapters/WebDav.ts (+2 -2)
📝 src/lib/browser/BrowserTree.ts (+13 -2)
📝 src/lib/interfaces/Resource.ts (+14 -0)
src/lib/murmurhash3.js (+66 -0)
📝 src/lib/native/NativeTree.ts (+2 -2)
📝 src/lib/strategies/Default.ts (+22 -12)
📝 src/lib/strategies/Merge.ts (+3 -3)
📝 src/lib/strategies/Unidirectional.ts (+2 -2)
📝 src/test/test.js (+3 -1)

📄 Description

for tree hashing

Fake adapter benchmark on Firefox (~5k bookmarks) Murmur3 sha256
should handle deep hierarchies with lots of bookmarks 62.782s 70.387s
should handle fuzzed changes from one client 126.245s 150.305s
should handle fuzzed changes from two clients 239.926s 267.662s

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/floccusaddon/floccus/pull/2026 **Author:** [@marcelklehr](https://github.com/marcelklehr) **Created:** 8/12/2025 **Status:** ✅ Merged **Merged:** 8/13/2025 **Merged by:** [@marcelklehr](https://github.com/marcelklehr) **Base:** `develop` ← **Head:** `feat/murmur3` --- ### 📝 Commits (5) - [`911beed`](https://github.com/floccusaddon/floccus/commit/911beed878382f431ac6917f36bed43f9622049b) refactor: Optionally support murmur3 + implement capabilities negotiation - [`49c0c42`](https://github.com/floccusaddon/floccus/commit/49c0c42321a8e6ffb84e04b9137d91fd94317522) fix: Try to fix tests - [`36cf98d`](https://github.com/floccusaddon/floccus/commit/36cf98db8de5f8eda590dcf81e86a880fa4d2626) fix(NextcloudBookmarks): Partial tree loading was broken - [`05c9306`](https://github.com/floccusaddon/floccus/commit/05c9306e58f4af60a7996c12a3c2d9287be0ee82) tests: Fix withSyncConnection to provide hash settings - [`8c88dad`](https://github.com/floccusaddon/floccus/commit/8c88dade1fa49ac5e3581dc4b9afb9a99a7b813f) tests: Remove IS_CI variable ### 📊 Changes **20 files changed** (+273 additions, -65 deletions) <details> <summary>View changed files</summary> 📝 `src/lib/CachingTreeWrapper.ts` (+9 -1) 📝 `src/lib/Crypto.ts` (+8 -0) 📝 `src/lib/LocalTabs.ts` (+13 -1) 📝 `src/lib/Scanner.ts` (+8 -7) 📝 `src/lib/Tree.ts` (+46 -21) 📝 `src/lib/adapters/Caching.ts` (+13 -1) 📝 `src/lib/adapters/Git.ts` (+2 -2) 📝 `src/lib/adapters/GoogleDrive.ts` (+2 -2) 📝 `src/lib/adapters/Karakeep.ts` (+13 -1) 📝 `src/lib/adapters/Linkwarden.ts` (+13 -1) 📝 `src/lib/adapters/NextcloudBookmarks.ts` (+19 -4) 📝 `src/lib/adapters/WebDav.ts` (+2 -2) 📝 `src/lib/browser/BrowserTree.ts` (+13 -2) 📝 `src/lib/interfaces/Resource.ts` (+14 -0) ➕ `src/lib/murmurhash3.js` (+66 -0) 📝 `src/lib/native/NativeTree.ts` (+2 -2) 📝 `src/lib/strategies/Default.ts` (+22 -12) 📝 `src/lib/strategies/Merge.ts` (+3 -3) 📝 `src/lib/strategies/Unidirectional.ts` (+2 -2) 📝 `src/test/test.js` (+3 -1) </details> ### 📄 Description for tree hashing |Fake adapter benchmark on Firefox (~5k bookmarks)|Murmur3|sha256| |-|-|-| |should handle deep hierarchies with lots of bookmarks|62.782s|70.387s| |should handle fuzzed changes from one client|126.245s|150.305s| |should handle fuzzed changes from two clients|239.926s|267.662s| --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-25 23:31:26 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/floccus#1984
No description provided.