Options
All
  • Public
  • Public/Protected
  • All
Menu

@ndn/cat

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

ndncat is a command line utility to publish and retrieve objects in various formats.

Publish and Retrieve Segmented Object

ndncat put-segmented publishes a segmented object, reading payload from standard input. It accepts the following arguments:

  • Positional argument: name prefix.
  • NDNTS_UPLINK, NDNTS_NFDREG, NDNTS_KEYCHAIN, NDNTS_KEY environment variables, as explained in @ndn/cli-common package.
  • --convention1 selects 2014 Naming Convention instead of 2019 Naming Convention for version and segment components.
  • --ver=42 inserts a specific version number as version component.
  • --ver=now (default) inserts current timestamp as version component.
  • --ver=none omits version component.
  • --no-rdr disables publishing current version as a RDR metadata packet. This is ignored with --ver=none.
  • --file=FILE reads from a file instead of standard input.
  • --chunk-size=N sets segment payload size.

ndncat get-segmented retrieves a segmented object, writing payload to standard output. It accepts the following arguments:

  • Positional argument: name prefix.
  • NDNTS_UPLINK environment variable, as explained in @ndn/cli-common package.
  • --convention1 selects 2014 Naming Convention instead of 2019 Naming Convention for version and segment components.
  • --ver=none disables version discovery and assumes either Data has no version component or the input name has version component.
  • --ver=cbp sends Interest with CanBePrefix and MustBeFresh to discover version.
  • --ver=rdr (default) sends an RDR discovery Interest to discover version.

Example

dd if=/dev/urandom of=/tmp/1.bin bs=1M count=1

# producer: serve from stdin
NDNTS_NFDREG=1 ndncat put-segmented /A </tmp/1.bin

# producer: serve from file, 8KB chunks
NDNTS_NFDREG=1 ndncat put-segmented /A --file=/tmp/1.bin --chunk-size=8192

# consumer: perform version discovery via RDR protocol
ndncat get-segmented /A >/tmp/2.bin

# consumer: perform version discovery via CanBePrefix
ndncat get-segmented --ver=cbp /A >/tmp/2.bin

# producer: use 2014 convention; retrieve with ndncatchunks
NDNTS_NFDREG=1 ndncat put-segmented --convention1 /A </tmp/1.bin
ndncatchunks /A >/tmp/2.bin

# consumer: use 2014 convention; retrieve from ndnputchunks
ndnputchunks /A </tmp/1.bin
ndncat get-segmented --convention1 --ver=rdr /A >/tmp/2.bin

diff /tmp/1.bin /tmp/2.bin
rm /tmp/1.bin /tmp/2.bin

Index

Type aliases

DiscoverVersionChoice

DiscoverVersionChoice: "none" | "cbp" | "rdr"

Variables

Const discoverVersionChoices

discoverVersionChoices: readonly DiscoverVersionChoice[] = ["none", "cbp", "rdr"]

Let segmentNumConvention

segmentNumConvention: NamingConvention<number> = Segment2

Let signer

signer: Signer

Let versionConvention

versionConvention: NamingConvention<number> = Version2

Functions

applyCommonArgs

  • applyCommonArgs(args: CommonArgs): Promise<void>

main

  • main(args: Args): Promise<void>

main

  • main(__namedParameters: { chunkSize: number; file: undefined | string; name: string; rdr: boolean; ver: string }): void
  • Parameters

    • __namedParameters: { chunkSize: number; file: undefined | string; name: string; rdr: boolean; ver: string }
      • chunkSize: number
      • file: undefined | string
      • name: string
      • rdr: boolean
      • ver: string

    Returns void

Legend

  • Namespace
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Type alias
  • Type alias with type parameter
  • Interface
  • Interface with type parameter
  • Class
  • Class with type parameter
  • Enumeration

Generated using TypeDoc