[HN Gopher] Automerge 2.0
___________________________________________________________________
Automerge 2.0
Author : llimllib
Score : 11 points
Date : 2023-01-30 21:10 UTC (1 hours ago)
(HTM) web link (automerge.org)
(TXT) w3m dump (automerge.org)
| codeptualize wrote:
| Link isn't working (extra /),
| https://automerge.org/blog/automerge-2/
| llimllib wrote:
| yikes! no idea how that happened, I'll delete and resubmit
|
| edit: there's no way to delete a submission? weird
|
| dang: any way you'll see this and fix the URL?
| alixanderwang wrote:
| you could just resubmit, and leave a comment here pointing
| there. i'll look for it in the new section to upvote!
| satvikpendem wrote:
| There is a delete button in one's submission history I
| believe, so for you it'd be
| https://news.ycombinator.com/submitted?id=llimllib
| llimllib wrote:
| no delete button there for me
| satvikpendem wrote:
| Ah, well dang might fix it if he sees this, or you could
| email them too.
| satvikpendem wrote:
| See also, Autosurgeon (with a 0.3.0 release today), which is a
| higher level API on top of Automerge for Rust:
|
| I'm building a mobile app with a server backend, and I was
| looking for resources to build them in an offline-first way
| (since unlike on the browser, people expect to use apps offline,
| if they can, such as fitness or habit trackers).
|
| I found the concept of conflict-free relational data types
| (CRDTS) interesting as it allows you to have fully offline
| experiences while also having a conflict-free syncing experience.
| I was looking for some good libraries and came across automerge
| [0] and yrs [1], but both had some rough APIs as they're
| primarily low-level Rust libraries that are wrapped by higher-
| level TypeScript APIs.
|
| Autosurgeon wraps the low-level API of automerge to make it much
| more ergonomic, closer to the TypeScript experience, but in Rust
| of course. You can for example use `struct`s which autosurgeon
| will serialize and deserialize automatically, which is not
| present in base automerge, which focuses more on string keys and
| arbitrary values.
|
| I am planning on using this together with Flutter and
| flutter_rust_bridge [2] in order to use this same Rust library
| everywhere. In this case, the server just becomes another (albeit
| more privileged) client.
|
| [0] https://github.com/automerge/automerge-rs
|
| [1] https://github.com/y-crdt/y-crdt
|
| [2] https://github.com/fzyzcjy/flutter_rust_bridge
___________________________________________________________________
(page generated 2023-01-30 23:01 UTC)