[HN Gopher] Earthstar - A database for private, distributed, off...
___________________________________________________________________
Earthstar - A database for private, distributed, offline-first
applications
Author : kristianpaul
Score : 121 points
Date : 2025-02-01 00:22 UTC (7 hours ago)
(HTM) web link (earthstar-project.org)
(TXT) w3m dump (earthstar-project.org)
| brendanyounger wrote:
| I believe this is superseded by the Willow protocol [0] which was
| posted here a while back.
|
| I tried to read about Willow, but could never make heads or tails
| of it [1]. It seems to be a hierarchical key value store with a
| bunch of extra fields for timestamps and cryptographic tokens,
| but it's woefully short on working examples. Even the recent Rust
| library [2] is effectively a bunch of abstract classes with
| implementations that just throw errors.
|
| I could make a quip about the state of European tech
| sophistication, but I'll let it pass with a polite smile.
|
| [0] https://willowprotocol.org/earthstar/spec/
|
| [1] https://willowprotocol.org/specs/data-
| model/index.html#data_...
|
| [2] https://github.com/earthstar-project/willow-rs/tree/main
| Fnoord wrote:
| It is funded by NLnet. For a list of NLnet funded projects [1].
| Any FOSS project can apply [2].
|
| [1] https://nlnet.nl/project/current.html
|
| [2] https://nlnet.nl/funding.html
| Havoc wrote:
| Not entirely following what this is?
|
| A document and media database of some sort with lots of
| JavaScript involved somehow? Aimed at something vaguely self-
| host-ish? With mastodon-ish replication to peer nodes?
|
| Seems like there is an ambitious grand vision happening here of
| sorts but not quite seeing it.
| escapecharacter wrote:
| An equivalent term is "local first", where there seems to be
| more activity.
| __MatrixMan__ wrote:
| Looks a bit like nostr except:
|
| - data is named, not content addressed (to support overwrite &
| deletion), so the primitive data type is associative arrays of
| names to documents instead of sets of messages
|
| - documents are grouped into "shares" and you have to know the
| "share address" before the server will acknowledge that it indeed
| has documents in that share.
|
| Seems like an interesting approach: part way private, part way
| open. It think projects like this which pick an extreme on that
| axis end up suffering for it--which is most of them.
|
| I bet it would succeed at keeping the spammers and scammers out,
| but I'd be leery of using it with a large group against a
| motivated adversary--if a single user exposes the share address
| (which is in a gray area between public and private) it seems
| like all of the users of that share are exposed. I'd prefer to
| see a web of trust so that an adversary has to compromise each
| hop on the trust graph before they find their target--but that's
| a lot of complexity for users to handle so I can see why keeping
| it simple might be worth tolerating the lack of granularity.
|
| I certainly hope that something like this succeeds. It feels like
| we've lost the web and there are too many of us to coordinate en
| masse without something web-like--and at a time where that
| coordination is pretty important.
| canadiantim wrote:
| Any possibility of implementation in different languages like
| Python? I like everything about this except that it's Javascript
| and I'm still cautious about using javascript for something like
| this
| __MatrixMan__ wrote:
| Applications like this are why I like languages like nim and
| gleam, which compile to both javascript and something else.
| This lets my app run on a raspberry pi or an esp32 or in a
| browser tab.
|
| Unfortunately neither are especially popular, so we end up
| asking implementations in multiple languages, which must be a
| drag for maintainers of projects like this. Alas, here we are.
| If not one of those, then I too would be interested in a python
| client library.
| randomcatuser wrote:
| I think this will really benefit from blog posts!! (ie, why did
| we design it like this?/what were the alternatives?)
|
| At a first glance, it sounds _interesting_ though! identities
| being keypairs, files, content that is accessible via name...
| hinkley wrote:
| I'm still annoyed I didn't join the SQLite party until after
| browsers sunset support for it.
| gwbas1c wrote:
| What applications run on top of this?
|
| Without some seed applications, it's hard to know if this
| actually works, or is just mental gymnastics.
| qwertox wrote:
| Does a Python client exist? The only thing I see in the docs
| which is related to Python is # Earthstar
| timestamps in python timestamp = int(time.time() * 1000 *
| 1000)
___________________________________________________________________
(page generated 2025-02-01 08:00 UTC)