Hyperdrive

Hyperdrive是一个实时的分布式文件系统。

  1. npm install Hyperdrive

build passing

用法

Hyperdrive旨在实现与Node核心fs模块一样的API。

  1. var hyperdrive = require('hyperdrive')
  2. var archive = hyperdrive('./my-first-hyperdrive') // content will be stored in this folder
  3. archive.writeFile('/hello.txt', 'world', function (err) {
  4. if (err) throw err
  5. archive.readdir('/', function (err, list) {
  6. if (err) throw err
  7. console.log(list) // prints ['hello.txt']
  8. archive.readFile('/hello.txt', 'utf-8', function (err, data) {
  9. if (err) throw err
  10. console.log(data) // prints 'world'
  11. })
  12. })
  13. })

与fs不同的是,你只需要创建一个流就可以将文件系统复制到其它电脑。

  1. var net = require('net')
  2. // ... on one machine
  3. var server = net.createServer(function (socket) {
  4. socket.pipe(archive.replicate()).pipe(socket)
  5. })
  6. server.listen(10000)
  7. // ... on another
  8. var clonedArchive = hyperdrive('./my-cloned-hyperdrive', origKey)
  9. var socket = net.connect(10000)
  10. socket.pipe(clonedArchive.replicate()).pipe(socket)

他还带有内置的版本系统和实时复制功能。