aboutsummaryrefslogtreecommitdiffstats
path: root/docs/ecosystem.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/ecosystem.md')
-rw-r--r--docs/ecosystem.md38
1 files changed, 26 insertions, 12 deletions
diff --git a/docs/ecosystem.md b/docs/ecosystem.md
index 673c513..1c7a411 100644
--- a/docs/ecosystem.md
+++ b/docs/ecosystem.md
@@ -1,12 +1,26 @@
-If you want to go deeper and see the implementations we are using in the [Dat command-line tool](https://github.com/maxogden/dat), here you go:
-
-- [dat](https://www.npmjs.com/package/dat) - the main command line tool that uses all of the below
-- [discovery-channel](https://www.npmjs.com/package/discovery-channel) - discover data sources
-- [discovery-swarm](https://www.npmjs.com/package/discovery-swarm) - discover and connect to sources
-- [hyperdrive](https://www.npmjs.com/package/hyperdrive) - The file sharing network dat uses to distribute files and data. A technical specification / discussion on how hyperdrive works is [available here](https://github.com/mafintosh/hyperdrive/blob/master/SPECIFICATION.md)
-- [hypercore](https://www.npmjs.com/package/hypercore) - exchange low-level binary blocks with many sources
-- [bittorrent-dht](https://www.npmjs.com/package/bittorrent-dht) - use the Kademlia Mainline DHT to discover sources
-- [dns-discovery](https://www.npmjs.com/package/dns-discovery) - use DNS name servers and Multicast DNS to discover sources
-- [utp-native](https://www.npmjs.com/package/utp-native) - UTP protocol implementation
-- [rabin](https://www.npmjs.com/package/rabin) - Rabin fingerprinter stream
-- [merkle-tree-stream](https://www.npmjs.com/package/merkle-tree-stream) - Used to construct Merkle trees from chunks
+# Dat Module Ecosystem
+
+We have built and contributed to a variety of modules that support our work on Dat as well as the larger data and code ecosystem. Feel free to go deeper and see the implementations we are using in the [Dat command-line tool](https://github.com/maxogden/dat) and the [Dat-js](https://github.com/joehand/dat-js), the javascript Dat module.
+
+Dat embraces the Unix philosophy: a modular design with composable parts. All of the pieces can be replaced with alternative implementations as long as they implement the abstract API.
+
+## Public Interface Modules:
+
+* [dat](dat) - the command line interface for sharing and downloading files
+* [dat.land](dat.land) - repository for the [dat.land](https://dat.land) website, a public data registry and sharing
+* [dat desktop](dat-desktop) - dat desktop application for sharing and downloading files
+
+## File and Block Component Modules:
+
+* [hyperdrive](hyperdrive) - The file sharing network dat uses to distribute files and data. Read the technical [hyperdrive-specification](hyperdrive-specification) about how hyperdrive works.
+* [hypercore](hypercore) - exchange low-level binary blocks with many sources
+* [rabin](https://www.npmjs.com/package/rabin) - Rabin fingerprinter stream
+* [merkle-tree-stream](https://www.npmjs.com/package/merkle-tree-stream) - Used to construct Merkle trees from chunks
+
+## Networking & Peer Discovery Modules:
+
+* [discovery-channel](https://www.npmjs.com/package/discovery-channel) - discover data sources
+* [discovery-swarm](https://www.npmjs.com/package/discovery-swarm) - discover and connect to sources
+* [bittorrent-dht](https://www.npmjs.com/package/bittorrent-dht) - use the Kademlia Mainline DHT to discover sources
+* [dns-discovery](https://www.npmjs.com/package/dns-discovery) - use DNS name servers and Multicast DNS to discover sources
+* [utp-native](https://www.npmjs.com/package/utp-native) - UTP protocol implementation