[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)