Recently @ Dat Project

A lot is going on in Dat world! It can be nice to take a step back and see what's we've been building recently. In this post series, we will highlight new Dat-related work and interesting things from our community. There are a few other pieces we've had our head down working on that we're looking forward to showing soon!

Recently, we've shipped these things:

Selective Sync #

Dat's design means each user only downloads the data they request but it was not possible to do this in the CLI, until now. This powerful feature allows users to download only the files they want, even from a massive Dat.

The new Dat CLI release adds selective sync along with key backup and importing. Selective sync allows you to specify which files you want to download either with an argument or using the .datdownload file. dat sync will download and keep updated on the selected files. This means you can put large datasets into Dat but have control over what files you download where.

Dat HTTP Storage #

We are very excited about leverging Dat's agnostic storage capabilities. This means you can store your files where ever and retrieve them with whatever protocol you want.*

With Dat HTTP Storage, files can be stored on regular http servers and downloaded via Dat. We're only starting to consider the feature possibilities of this, but it means we can start hosting Dats on any static file server, such as S3. Next up is integrating this into our dat-node library.

*As long it supports random access

Node on Android #

We get asked a lot if Dat can run on mobile and always thought it'd be a long road of implementation in Java or Objective-C. When some community members showed us they could run Dat on Termux, a terminal emulator for Android, @mafintosh realized the possibilities and started coding!

node-on-android provides a simple way to create and build Javascript applications that run as Android apps. The approach is similar to that of Github's Electron. We still have some work to do to get Dat integrated into an app but it is much closer than we thought.

Dat Chat via hyperirc #

Hypercore, the foundational technology for Dat provides easy distributed streaming tools that can move data anywhere. In this case, we have a single server logging our IRC chat. Then the logs can be viewed anywhere via hyperirc or even downloaded as a regular file via hyperpipe.

chat.datproject.org shows how you can integrate hypercore into user facing web applications, by leveraging streaming websockets. In the future we hope to also connect users peer-to-peer over WebRTC and allow users to join and send message on that page.

Updated Blog #

Shoutout to Ghost for making the 1.0 upgrade process seamless & well documented. We also took the opportunity to also add some custom Dat style to the default Casper theme. Of course, we used Dat to transfer the theme to our server. Let us know what you think.

Interesting Happenings in the Community #

Also, thanks to Tom MacWright for the idea of recently posts.

Random Cool Things #

  • Beaker Browser on OpenCollective - Support our friends building a peer to peer browsering using Dat!
  • Prototype: Remote debugging via hypercore - @mafintosh had a great idea that we can stream logs using hypercore. Our command line logging module, neat-log, is especially great because we can use the state to reconstruct more detailed debugging information in a separate UI from the user. Coming soon to a Dat CLI near you!
  • Prototype: live bus data over dat - Live streaming bus GPS locations into Dat with a map UI coming soon. The map will use websockets to display bus locations via Dat.