clientdb
LucidMQ
clientdb | LucidMQ | |
---|---|---|
3 | 4 | |
640 | 28 | |
0.0% | - | |
0.0 | 7.6 | |
about 1 year ago | 8 months ago | |
TypeScript | Rust | |
Apache License 2.0 | MIT License |
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.
clientdb
-
The Future of the Web Is on the Edge
Replicache (https://replicache.dev/) and clientdb (https://clientdb.dev/) are the only productized versions of this architecture I'm aware of (please do let me know if anyone is aware of others!).
But the architecture itself has been used successfully in a bunch of apps, most notable of which is probably Linear (https://linear.app/docs/offline-mode, I remember watching an early video of their founder explaining the architecture in more detail but I can't seem to find it anymore).
Basically the way authorization works is you define specific mutations that are supported and allowed, with a client-side and server-side implementation. The client side gets applied optimistically and then sync'ed and ran on the server, which applies authorization rules and detects and handles conflicts, which can result in client state getting rolled back. Replicache has a good writeup here: https://doc.replicache.dev/how-it-works#the-big-picture
-
TinyBase v2.0: “the reactive data store for local-first apps”
This looks really cool, love seeing more innovation in this space!
At first glance this seems to be mostly targeted towards single-user apps where each user would have their own database that can be sync'ed to a remote server, but still isolated from data for other users, similar to the CouchDB+PouchDB model?
At least it looks that way since I couldn't see anything around authorization and conflict resolution. Not that there's anything wrong with focusing on this use case, a lot of apps can function perfectly fine this way.
A few other interesting new players:
https://replicache.dev/
https://clientdb.dev/
- ClientDB
LucidMQ
-
Cap'n Proto 1.0
I'm using Cap'N Proto in a message broker application(LcuidMQ) I'm building for serialization. It has allowed me to created client applications rather quickly. There are some quirks can be difficult to wrap your head around, but once you understand it is really solid.
There are some difference between the language libraries and documentation can be lacking around those language specific solutions. I'm hoping to add blog articles and or contribute back to the example of these repositories to help future users in the future.
Check out my repo here for how I use it across Rust and Python, with Golang coming soon: https://github.com/lucidmq/lucidmq
-
TinyBase v2.0: “the reactive data store for local-first apps”
I've been working on something that may fit your criteria. The API is kafka-like and it's whole goal is to provide an easy to use local-first stream datastore/data-engine.
It currently only has support for Rust and Python clients but working on expanding to node(JS) and C/C++ in the future.
https://github.com/lucidmq/lucidmq
- Released my first Python Library: LucidMQ
-
What is a really cool thing you would want to write in Rust but don't have enough time, energy or bravery for?
If you're interested, check out the repo. Feedback is much appreciated to make this useful: https://github.com/bdkiran/lucidmq
What are some alternatives?
RxDB - A fast, local first, reactive Database for JavaScript Applications https://rxdb.info/
coq2rust - Coq to Rust program extraction. The whole tree is on the original Coq code base.
tinybase - The reactive data store for local‑first apps.
supervisionary - The Supervisionary proof-checking kernel for higher-order logic
sycamore - A library for creating reactive web apps in Rust and WebAssembly
sqlc - Generate type-safe code from SQL
cranelift-jit-demo - JIT compiler and runtime for a toy language, using Cranelift
yew - Rust / Wasm framework for creating reliable and efficient web applications
coq-of-ocaml - Formal verification for OCaml
jax - Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more
tensorflow - An Open Source Machine Learning Framework for Everyone