11 ms·
Earthstar – A database for private, distributed, offline-first applications
- brendanyounger 2y agoI 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/ https://willowprotocol.org/earthstar/spec/ [1] https://willowprotocol.org/specs/data-model/index.html#data_model https://willowprotocol.org/specs/data-model/index.html#data_... [2] https://github.com/earthstar-project/willow-rs/tree/main https://github.com/earthstar-project/willow-rs/tree/main
- Fnoord 2y agoIt 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 https://nlnet.nl/project/current.html [2] https://nlnet.nl/funding.html https://nlnet.nl/funding.html
- saranshsharma 2y ago[dead]
- jazzyjackson 2y agoI was going to say what the sibling said, no need for snark, NLnet funds a ton of cool projects. If I were to judge the quality of software written in silicon valley on the vc funded projects that don't pan out, god help me
- omnimus 2y agoYeah one person open-source project says everything about the state of European tech sophistocation.
- PaulRobinson 2y agoJust like how Linux and Python started out and crashed and burned and nobody ever uses them any more lol Mate, what are you actually on about?
- culi 2y agoThe website literally says "Earthstar has a new specification powered by Willow." in a banner at the very top
- madacol 2y agothey seem to be the same people behind Willow: https://earthstar-project.org/docs/future#willow-protocol https://earthstar-project.org/docs/future#willow-protocol > All of these above features are enabled by the new Willow General Purpose Sync Protocol we've been working on. It's a new protocol inspired by Earthstar, refining and building upon its concepts. We will be publishing a new website with complete specifications for this protocol. --- https://willowprotocol.org/more/compare/index.html#compare_es https://willowprotocol.org/more/compare/index.html#compare_e... > If Earthstar feels very similar to Willow, then that is no coincidence. Willow started out as a reimagining of Earthstar, future Earthstar versions will build upon Willow, and the core maintainer of Earthstar is one of the two Willow authors.
- Havoc 2y agoNot 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 2y agoAn equivalent term is "local first", where there seems to be more activity.
- erikerikson 2y agoI came to comment this. What's the use case? How would I use it? Why would I want to use it? Definitely some interesting features but the vision seemed lost in their listing.
- danjl 2y agoThe distributed part of Earthstar seems like the selling point? Otherwise, it certainly does not have the range of database capabilities of either PGlite or SQLite, which also work offline, store data locally, and work in the browser. What do you get from the distributed nature of Earthstar? Backup? That's pretty simple with both SQLite and PGlite too, so I'm not sure I see a big benefit for most db users. The win seems to come from people who want to store data on their machines AND share that data with other individuals who also get local copies. Maybe this is for pirating content?
- dpflug 2y agoIt could be useful for, for instance, sharing photos with family, meeting notes, etc. Doesn't have to be piracy.
- danjl 2y agoSo, for people who are paranoid about using the services that are designed for these sorts of sharing, like Dropbox, GDrive, GPhotos, and a million others? These theoretical people would suffer the frustrations of setting up and managing their own db for the added privacy? I wonder what they have in those photos and meeting notes that is so sensitive?
- __MatrixMan__ 2y agoLooks 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.
- nine_k 2y agoHmm, a proper capability-based design would, of course, give each user a separate share address, which could be disabled at any time. Share addresses should be handled much like ssh keys.
- __MatrixMan__ 2y agoI haven't used this, just explored the docs a bit, so maybe I'm misunderstanding, but my feeling is that one-share-per-user is too small--you could only use that to chat with yourself.
- canadiantim 2y agoAny 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__ 2y agoApplications 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 2y agoI 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 2y agoI’m still annoyed I didn’t join the SQLite party until after browsers sunset support for it.
- jazzyjackson 2y agoWhat goes around comes around, sqlite now distributes WASM builds that run in the browser: https://sqlite.org/wasm/doc/trunk/index.md https://sqlite.org/wasm/doc/trunk/index.md
- rkagerer 2y agoWhat did they sunset?
- TJSomething 2y agoWeb SQL, which was Chrome's implemented proposal to add SQLite to the JavaScript standard library. Chrome said they scrapped it because SQLite wasn't really intended to be used in a security environment as hostile as the web. Mozilla did not implement it because it's not any kind of standard subset of SQL and no such subset is agreed upon while also useful. They didn't want to tie web standards, supported features in browser releases, and SQLite's release lifecycle to each other.
- hinkley 2y agoI heard that since there’s only one SQLite vendor and nothing else comparable to allow for multiple options, they wouldn’t support it. I would like to hear more about the hostile environment comment. I thought they sandboxed every page. Cross origin data theft?
- gwbas1c 2y agoWhat 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 2y agoDoes 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)
- ofrzeta 2y ago[wrong thread, sorry]
- CalRobert 2y agoWrong place?
- jazzyjackson 2y agoI would recommend instead jellyfin, immich, and maybe just plain sftp for all the rest. You can sync (err, become distributed) by way of git, syncthing, or rsync. What I haven't seen yet is a good self hosted identity manager, SSO sort of thing. I believe bluesky is working on one but I dont know if it will be self hostable (Freudian autocorrect: self hostage) Another thing I haven't figured out yet with my homelab/private cloud is how to be my own CA and manage access to my machine without teaching my counterparties ssh. I want something like NordVPN offers in their meshnet: anyone logged into the family plan can see each other's machines as if they were local network. Can wireguard accomplish this? I think this is what yggdrasil is too but haven't dug into it.
- dudus 2y agoI'll suggest maybe tailscale is what you are looking for to share with family a VLAN
- idle_zealot 2y agoAdding on to this: you can host your own Tailscale-compatible server with Headscale, if you want to be totally independent.
- jazzyjackson 2y agoI’m going to dig into Headscale with Authelia for OIDC, that’s pretty close to what I was imagining, found this tutorial [0] (wow posted just 4 days ago). Thanks ya’ll. [0] https://www.reddit.com/r/selfhosted/comments/1ic1w4q/headscale_setup_with_headscaleadmin_frontend_and/ https://www.reddit.com/r/selfhosted/comments/1ic1w4q/headsca...
- globular-toast 2y agoIsn't this a library for building your own applications? I don't see how jellyfin etc is relevant here. By "good" identity management I guess you mean something other than OpenLDAP or 389? Not sure how well these work with Windoze if you care about that. Being your own CA is easy. Installing that CA in all the machines you want to is the sucky bit. It all works if you use let's encrypt. Wireguard can let you join two LANs together over the internet but you'll probably want two wireguard capable routers on each end (like pfsense or something). Otherwise you'll have to install special routing configs on to each client machine. Forwarding avahi (for auto-discovery) over the link is something I haven't figured out yet.
- sunshine-o 2y ago[dead]
- mrbluecoat 2y ago> Always self-hosted. Servers optional. No blockchain. No tokens. Free forever, in every sense. Best thesis statement ever.
- jlkuester7 2y agoHonestly it kinda feels like they just reimplemented CouchDB/PouchDB.... Not that it would be a bad thing to do that, but really, for small scale stuff Couch works pretty okay. My first impressions of Earthstar do not lead me to believe they have a particular emphasis on performance at scale.
- deleted 2y ago[deleted]
- kapad 2y agoJAWA = Just Another Web3 App