automerge-rs VS engula

Compare automerge-rs vs engula and see what are their differences.

automerge-rs

Rust implementation of automerge [Moved to: https://github.com/automerge/automerge] (by automerge)

engula

Engula is a distributed key-value store, used as a cache, database, and storage engine. (by engula)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
automerge-rs engula
12 9
1,018 773
- 0.0%
9.8 0.0
about 1 year ago over 1 year ago
JavaScript Rust
MIT License Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

automerge-rs

Posts with mentions or reviews of automerge-rs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-01-30.
  • Automerge 2.0
    11 projects | news.ycombinator.com | 30 Jan 2023
    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

  • Autosurgeon 0.3.0, use conflict-free replicated data types (CRDTs) to build offline-first apps with an easy-to-use API based on Automerge
    4 projects | /r/rust | 30 Jan 2023
    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 and yrs, but both had some rough APIs as they're primarily low-level libraries that are wrapped by TypeScript APIs.
  • What do you recommend for conflict-free replicated data type (CRDT) support in Rust?
    6 projects | /r/rust | 8 Jan 2023
    Yes, the plan is to use PostgreSQL. I had a discussion with one of the devs in this ticket about the strategy for this.
  • Some key-value storage engines in Rust
    12 projects | /r/rust | 27 Dec 2022
    In any case, my current plan is to use Automerge for the data handling itself (so I can easily do collaboration), but that crate doesn't handle on-disk storage. For this I need another solution, and a K/V store is well suited for this task.
  • Official /r/rust "Who's Hiring" thread for job-seekers and job-offerers [Rust 1.66]
    3 projects | /r/rust | 19 Dec 2022
    15 years working in software, Rust has been my favourite language for the last 2. Recently completed a contract to prototype a distributed Tailscale-inspired VPN built on Ink and Switch's CRDT project automerge-rs.
  • You might not need a CRDT (Conflict-free Replicated Data Type)
    2 projects | /r/rust | 12 Dec 2022
    Complex topic. There's a very easy-to-use CRDT library for Rust (automerge), while there isn't much support for operational transforms (although Aper is new to me, I have to check it out).
  • Testing CRDTs in Rust, From Theory to Practice
    1 project | /r/rust | 6 Apr 2022
    I've been watching automerge-rs like a hawk, because they seem to be the only CRDT implementation where you don't need a Mathematics master to understand how to use it. They've been working on a rewrite for the last two years, hopefully they'll do a new release soon.
  • Automerge: A JSON-like data structure (a CRDT) that can be modified concurrently
    12 projects | news.ycombinator.com | 20 Feb 2022
  • Automerge: a new foundation for collaboration software [video]
    13 projects | news.ycombinator.com | 10 Dec 2021
  • Show HN: SyncedStore CRDT – build multiplayer collaborative apps for React / Vue
    11 projects | news.ycombinator.com | 8 Dec 2021
    https://github.com/automerge/automerge-rs

    By the way despite that particular repo (@localfirst/state) last being touched 6 months ago, Herb Caudill definitely seems still active in this space (I believe he's been working on other parts of this more recently -- e.g. ideas about authentication), and I think automerge development itself is quite active right now leading up to a 1.0 release which seems fairly imminent, for which a lot of fundamental work has been done, also coordinating with automerge-rs.

engula

Posts with mentions or reviews of engula. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-27.

What are some alternatives?

When comparing automerge-rs and engula you can also consider the following projects:

yjs - Shared data types for building collaborative software

datafuse - An elastic and reliable Cloud Warehouse, offers Blazing Fast Query and combines Elasticity, Simplicity, Low cost of the Cloud, built to make the Data Cloud easy [Moved to: https://github.com/datafuselabs/databend]

automerge - A JSON-like data structure (a CRDT) that can be modified concurrently by different users, and merged again automatically.

nebari - A pure Rust database implementation using an append-only B-Tree file format.

rust-libp2p - The Rust Implementation of the libp2p networking stack.

rust-rocksdb - rust wrapper for rocksdb

y-crdt - Rust port of Yjs

dustdata - A data concurrency control key-value storage engine to Rustbase

SyncedStore - SyncedStore CRDT is an easy-to-use library for building live, collaborative applications that sync automatically.

photondb - A high-performance storage engine for modern hardware and platforms.

slate-yjs - Yjs binding for Slate

rust-gpu - 🐉 Making Rust a first-class language and ecosystem for GPU shaders 🚧