Module @ndn/repo-api


This package is part of NDNts, Named Data Networking libraries for the modern web.

This package defines the programming interface of an abstract Data repository, and functions that work with this interface.


DataStore is a group of interfaces that defines the API of a Data repository. DataStore type of @ndn/repo package is an implementation of these interfaces.

  • get(name) retrieves Data by exact name.
  • find(interest) finds Data that satisfies Interest.
  • listNames(prefix?) iterates over names of stored Data.
  • listData(prefix?) iterates over stored Data.
  • insert(options?, ...pkts) inserts Data packets.
  • delete(...names) deletes Data packets.


DataTape is a file or stream that consists of a sequence of Data packets. As a file type, DataTape may be used to transfer packets between repo instances.

DataTape type of this package is an append-only implementation of DataStore interface. The copy(src, prefix?, dst, options?) function can import or export packets between DataStore and DataTape instances.

Bulk Insert

A repo may accept Data ingestion via bulk insertion protocol. The Data producer initiates a reliable connection to the repo's bulk insertion target and writes Data packets over this connection. The repo then saves received Data to storage, but provides no feedback. Conventionally, this protocol runs over TCP and uses port 7376.

This package implements core functionality of this protocol.

  • Data producer can use BulkInsertInitiator type to initiate bulk insertion.
  • Repo can use BulkInsertTarget type to accept bulk insertion.

They are used in @ndn/repo-cli package.