Vanadium – Create distributed applications that can run anywhere
v.io
v.io
Disclosure: I very briefly worked on it at Google and I can attest the team behind it is brilliant beyond imagination.
- The authors are either Google and/or heavily affiliated with Google
- On their website, the two highlighted projects/products are Syncbase and Vanadium Core.
- Syncbase is a distributed, works-offline datastore, with well-defined ways of doing reconciliation. Think, git merges, or collaborative docs, or y'know anything with vector clocks but approached from the side of the UX they want to target.
- Vanadium Core is "the discovery, RPC, and security layer underlying Syncbase", including its custom binary data serialization format 'VOM' and its IDL called 'VDL'.
I have an application for that _right now_. Syncbase doesn't look ready though, does anyone know of an alternative data store that ticks all those boxes? e.g. I was looking at Cognito, but it lacks peer-to-peer.
https://github.com/attic-labs/noms
Happy to answer questions here or in our Slack channel.
That's an unfortunate assumption. Looking back at historic examples, the Windows API was complicated to use while the NeXTSTEP API wasn't. Is there any question which was created by an "elite team"?
Part of the complexity is that it's solving like 15 major problems at the same time in an interconnected way. It's also solving them for people like google which means there are a lot of requirements for all the things it needs to do.
Because it does new things, in addition to old things in new ways, there's a steep learning curve for all of its concepts. I totally agree that doesn't mean it couldn't be more elegant and "simple," but the win32/nextstep analogy isn't fair as they were far more similar than vanadium is to anything else. Vanadium is like a hybrid of (to use existing concepts) dns/http/ssl/json/bluetooth/nosql/ntp/kerberos and more. When you put it all together there isn't a lot of existing references or cognitive frames to help you "get it" righ away.
I was looking at http://www.opengarden.com/meshkit.html but they don't seem interested in my scale.
Couchbase Lite can be used stand-alone, or as part of the Couchbase Mobile stack, which includes Sync Gateway and Couchbase Server. Everything is open source, too.
I'm happy to answer questions here, you can ping me on twitter, or through our forums, etc. Hod @ Couchbase
Pouch https://pouchdb.com/ .
You could even do http://webtorrent.io !
But the key points:
-) All data is encrypted both on the wire and "at rest" (presumably on disk)
-) All options are versioned to allow merging
-) Provides builtin policies for resolving conflicts (eg last one wins)
-) Handles structured data (nosql api) and binary data (blob api)
-) Fine grained ACLs for permissions
-) Apparently offers p2p syncing without a central server
You're also missing:
- a very sophisticated ACL/role model all built off cryptography that allows me to do things like grant Bob permission to watch my TV if Bob is within 100ft of a vanadium-powered Bluetooth device that can verify his proximity. And that's just the tip of the iceberg.
- solves RPC in a cross-platform way, handles bi-directional steaming, and data marshaling
- solves decentralized DNS using something called mounttables that can work just as well for servers in a cloud environment as routing to your IoT devices
- basically reinvents how devices talk to each other in many other ways that are too much for a HN comment.
Disclaimer: I work for Google, but I have no idea what this is.
But you are probably right: page is in material design, the repos are mostly Dart or Go.
- I read the Vanadium ToS [1]
- In the video embedded from the page on 'Syncbase' [2] everyone shown works at Google.
- At this point, the association with Google looks very likely. I searched for 'syncbase google' and found a ton of intriguing stuff, including the prospect that it's being used in production settings by Google.
- I searched for 'vanadium google' and found this Twitter thread [3]
[1] https://vanadium.github.io/tos.html
Quote:
I am a Staff Research Scientist at Google managing a team of roughly seven people at the Mountain View campus.
I work on a project that you haven't heard of and that I can't talk about, but, needless to say, we're doing really cool stuff that you'll be excited about when it's finally released.I left Google in May of this year and joined Grail, where we're developing an NGS-based blood test to detect cancer early, when it can still be cured. We're using Vanadium for the infrastructure we need to support our internal development and analysis pipelines. Since I left Google Vanadium was split into a 'core' component (security, rpc, naming) and syncbase separately. The core component is very stable, syncbase is likely stable but not quite complete. We're currently using only Vanadium core.
To answer some point questions: - yes, this is the project Jeff Nichol's is referring to - and here, https://arxiv.org/pdf/1604.06959v2.pdf
Also, why are syncbase sources not on github?
Also might be worth asking on our mailing list https://groups.google.com/a/v.io/forum/#!forum/vanadium-disc...
It looks like a lot of the Googlers previously working on the project has now moved to Grail bio.
I can't speak to what level of commitment to the project those that have moved on to Grail have; you should direct questions to https://news.ycombinator.com/user?id=cosmosnicolaou or refer to his comments.
I actually recently gave a presentation / live demo of Vanadium at Drinks on Tap SF. It's not production ready, but a cool glimpse into a possible new paradigm ;)
I would love to hear how you compare to Deepstream and us ( http://gun.js.org/ ), and http://Horizon.io ?
Edit: Also how on earth did you snag `v.io`? That is amazing and I thought single-letter domains weren't allowed?
Note
Requiring a cloud Syncbase is temporary. We are planning to allow the API to be used without a cloud Syncbase soon.
Does it mean that the following use case will be supported:I have two devices in the same LAN with no internet access, and they will be able to synchronize ?
That said, right now I'd build using firebase unless you have very specific needs.