Wondering what’s next for npm?Check out our public roadmap! »


    1.0.6 • Public • Published


    DDatabases, batteries included.

    dHub is a lightweight server that provides remote access to DDatabases and a DSwarm instance. It exposes a simple RPC interface that can be accessed with the dHub client for Node.js.

    The RPC API's designed to be minimal, maintaining parity with DDatabase and the @basestorex/networker but with few extras.

    Features include:

    • A RemoteBasestore interface for creating namespaced Basestore instances.
    • A RemoteNetworker interface for managing DSwarm DHT connections. Supports stream-level extensions.
    • A RemoteDDatabase interface that feels exactly like normal ol' DDatabase, with few exceptions. Extensions included.

    Already using the dDrive daemon?

    With dHub, most of the dDrive daemon's functionality has been moved into "userland" -- instead of providing remote access to DDrives, the regular ddrive module can be used with remote DDatabases.

    If you're currently using the dDrive daemon with FUSE and/or the daemon CLI, take a look at the upgrade instructions in @dhub/ddrive, which is our new DDrive companion service for handling FUSE/CLI alongside dHub.

    Note: The first time you run dHub, it will detect your old dDrive daemon installation and do an automatic migration. You can postpone the migration by starting the server with the --no-migrate flag (dhub --no-migrate).


    npm i dhub -g

    Getting Started

    When installed globally, you can use the dhub CLI tool to start the server:

    ❯ dhub --no-migrate  // Starts the server without performing the dDrive daemon migration

    The dhub command supports the following flags:

    --bootstrap   // DSwarm bootstrapping options (see DSwarm docs).
    --host        // Host to bind to.
    --port        // Port to bind to (if specified, will use TCP).
    --memory-only // Run in memory-only mode.
    --no-announce // Never announce topics on the DHT.
    --no-migrate  // Do not attempt to migrate the dDrive daemon's storage to dHub.
    --repl        // Start the server with a debugging REPL.

    By default, dHub binds to a UNIX domain socket (or named pipe on Windows) at ~/.dhub/dhub.sock.

    Once the server's started, you can use the client to create and manage remote DDatabases. If you'd like the use the DDrive CLI, check out the @dhub/ddrive docs.


    To work with dHub, you'll probably want to start with the Node.js client library. The README over there provides detailed API info.


    dHub includes a "simulator" that can be used to create one-off dHub instances, which can be used for testing.

    const simulator = require('dhub/simulator')
    // client is a DHubClient, server is a DHubServer
    const { client, server, cleanup } = await simulator()




    npm i dhub

    DownloadsWeekly Downloads






    Unpacked Size

    74.8 kB

    Total Files




    Last publish


    • avatar