Awesome dat Awesome

A curated list of the dat ecosystem.

Inspired by the awesome list thing.

Please read the contribution guidelines before contributing.

#dat IRC channel on freenode datproject/discussions

For the users

Organization & Specs

Modules Dat is Built On

Hypercore & Hyperdrive

Hypercore and hyperdrive are the core components for Dat's file management, verification, and sharing.

  • 📔hyperdrive - A file sharing network based on rabin file chunking and append only feeds of data verified by merkle trees.
  • 📔hypercore - Protocol and network for distributing and replicating feeds of binary data.
  • hypercore-protocol - Stream that implements the hypercore protocol.
  • rabin - Rabin fingerprinter stream
  • merkle-tree-stream - Used to construct Merkle trees from chunks

Networking

Random Access

If you are receiving a file in multiple pieces in a distributed system it can be useful to write these pieces. Dat has some modules to do that!

  • random-access-file - Continuous reading or writing to a file using random offsets and lengths
  • random-access-memory - Exposes the same interface as random-access-file but instead of writing/reading data to a file it maintains it in memory
  • abstract-random-access - Base class for random access stores, such as random-access-file and random-access-memory.
  • random-access-page-files - An abstract-random-access backend that writes to fixed size page files instead of a single file. Useful for sparse data.

Dat CLI Tools

We have our main Dat CLI tool, but there are also other CLI tools to help debugging, to find info about a Dat, or use Dat in different ways.

  • dat-ls - Small program that lists all the changes in a dat
  • hyperhttp-cli - simple CLI tool to view a feed or archive metadata on a local http server.
  • dat-doctor - debug dat networking issues

Using Archives and Feeds

There are lots of modules that help you use, manage, and track Dat archives or hypercore feeds. We use some of these in the CLI and Desktop application!

  • multidrive - Manage multiple hyperdrive instances.
  • 📔 dat-node - Manage Dat archives on the file system.
  • dat-api - A pure JavaScript browser-friendly api for using dat.
  • normcore - No-config distributed streams using hypercore

Importing & Exporting

Networking

  • 📔hyperdiscovery - Join the p2p swarm for a given hyperdrive archive.
    • hyperdrive-http - Share Dats over the web! Add http endpoints to an archive.

Stats

Misc

Browser Modules

Archiving, Backup, Dat Servers

  • dat.haus - The composable HTTP API to the dat network
  • hypercore-archiver - A hypercore peer that will backup multiple hypercores/hyperdrives efficiently to disk.
  • hypercore-archiver-bot - IRC bot that is an interface to hypercore-archiver
  • archiver-server - Serve archives and feeds from hypercore-archiver over discovery-swarm and HTTP
  • archiver-api - rest API for hypercore-archiver.
  • dat-archiver - a Dat archiving server that you can push data to over the Dat network

Built with Dat

Science & Academia

  • Science Fair - Search, collect, read and reuse the scientific literature over Dat
  • Project Svalbard - a distributed scientific data archiving network

Data Processing

  • hyperspark - Hyperspark is a decentralized data processing tool for Dat. Inspired by Spark.
  • jawn - Git for Tabular Data.

Web & Development

  • hyperfeed - A self-archiving P2P live feed. You can convert any RSS/ATOM/RDF feed to a P2P live update publishing network.
  • git-dat - git plugin to use dat:// remotes
  • hyperpipe - Distributed input/output pipe.

License

CC0

To the extent possible under law, clkao, the Dat team, and contributors have waived all copyright and related or neighboring rights to this work.