-
Notifications
You must be signed in to change notification settings - Fork 0
Subduction+Automerge on Wasm #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This pull request introduces significant architectural changes to support WebAssembly (WASM), refactors the connection handling model, and adds new packages for Automerge integration. The changes span multiple crates and introduce a new actor-based pattern for managing connections.
Key changes include:
- Refactored
Connectiontrait to use&selfinstead of&mut selffordisconnect() - Introduced actor-based connection handling with
ConnectionActorand message queues - Changed
Storagetrait to requireSedimentreeIdparameter for all operations - Added three new WASM packages:
subduction_wasm,sedimentree_automerge_wasm, andsubduction_automerge_wasm - Replaced
mpsc::unboundedchannels withasync_channelthroughout - Changed request ID nonce from
u128tou64 - Added workspace-level lints configuration
Reviewed changes
Copilot reviewed 68 out of 70 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| subduction_core/src/subduction.rs | Major refactor: added actor pattern, replaced Mutex<HashMap> with DashMap, changed API from mutable to immutable |
| subduction_core/src/connection.rs | Added recv_once and actor modules, changed disconnect() signature to take &self |
| subduction_websocket/src/websocket.rs | Switched from futures::channel::mpsc to async_channel, changed counter from u128 to u64 |
| subduction_wasm/src/websocket.rs | Complete rewrite with async_channel, added connection lifecycle management |
| sedimentree_core/src/storage.rs | Changed all methods to require SedimentreeId parameter, replaced Mutex with DashMap |
| Cargo.toml | Added workspace lints, new dependencies (async-channel, dashmap, etc.) |
| subduction_automerge_wasm/ | New package for Automerge+Subduction WASM bindings |
| sedimentree_automerge_wasm/ | New package for Sedimentree+Automerge WASM bindings |
| build_info/ | New package for embedding git commit information |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
No description provided.