aboutsummaryrefslogtreecommitdiffstats
path: root/ecosystem.md
blob: fbd892904097aa1b1b5422e1435588017337280a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
## Implementations

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 lwo 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