ndnd

Golang implementation of the Named Data Networking protocol stack

https://github.com/named-data/ndnd

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.2%) to scientific vocabulary

Keywords

forwarding golang ndn networking routing
Last synced: 6 months ago · JSON representation ·

Repository

Golang implementation of the Named Data Networking protocol stack

Basic Info
  • Host: GitHub
  • Owner: named-data
  • License: mit
  • Language: Go
  • Default Branch: main
  • Homepage: https://named-data.net
  • Size: 3.32 MB
Statistics
  • Stars: 27
  • Watchers: 4
  • Forks: 21
  • Open Issues: 18
  • Releases: 10
Topics
forwarding golang ndn networking routing
Created over 5 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Citation Security

README.md

Named Data Networking Daemon

build test Go Report Card Benchmark

release MIT license Go Reference

NDNd is a Golang implementation of the Named Data Networking (NDN) protocol stack.

See the project overview, architecture details and the tutorial for more info on NDN.

🏗️ Installation

Pre-built static binaries for all supported platforms are available on the releases page. Linux-based systems may also utilize the provided Docker images.

NDNd is written in pure Go and requires Go 1.23 or later to build from source. Once Go is installed, run make to build the ndnd executable, followed by make install to install it globally.

🌟 Usage

NDNd provides several independent modules that can be used separately or together.

You can use the ndnd CLI to list available modules and get more info on their usage. A tutorial example for running a simple NDN network can be found here.

```text root@0037b98ec2ac:~# ndnd


| \ | | _ | \ | | | | | | | | | | | |/ _ | | |\ | || | |\ | (| | |_| _|/|_| _|__|

Named Data Networking Daemon

Usage: ndnd [command]

NDN Daemons fw NDN Forwarding Daemon dv NDN Distance Vector Daemon daemon NDN Combined Daemon

Security Tools sec NDN Security Utilities certcli NDNCERT Certificate Client

Debug Tools ping Send Interests to a ping server pingserver Start a ping server under a name prefix cat Retrieve object under a name prefix put Publish data under a name prefix

Additional Commands: help Help about any command

Flags: -v, --version version for ndnd ```

🔀 Network Forwarder

The ndnd/fw package implements YaNFD, a packet forwarder for the NDN platform. It is compatible with the management tools and protocols developed for the NFD forwarder.

To start the forwarder locally, run the following:

bash ndnd fw run yanfd.config.yml

A full configuration example can be found in fw/yanfd.sample.yml. Note that the default configuration may require root privileges to bind to multicast interfaces.

Once started, you can use the forwarder control tool to manage faces and routes.

📡 Distance Vector Router

The ndnd/dv package implements ndn-dv, an NDN Distance Vector routing daemon.

To start the routing daemon bound to the local forwarder, run the following:

bash ndnd dv run dv.config.yml

A full configuration example can be found in dv/dv.sample.yml. Make sure the network and router name are correctly configured and the forwarder is running.

Once started, you can use the router control tool to create and destroy neighbor links.

📚 Standard Library

The ndnd/std package implements go-ndn, a standard library for NDN applications.

You can use this package to build your own NDN applications. Several examples are provided in the std/examples directory.

The standard library supports the Light VerSec binary format for trust schema specification.

🛠️ Tools

The ndnd/tools package provides basic utilities for NDN networks. These can be used directly using the ndnd CLI.

  • sec: security utilities for generating keys and certificates (docs)
  • certcli: interactive NDNCERT client (docs)
  • ping/pingserver: test reachability between two NDN nodes
  • cat/put: segmented file transfer between a consumer and a producer

Contributing & License

Contributions to NDNd are greatly appreciated and can be made through GitHub pull requests and issues.

NDNd is free software distributed under the permissive MIT license.

Owner

  • Name: Named Data Networking
  • Login: named-data
  • Kind: organization

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Newberry"
  given-names: "Eric"
  orcid: "https://orcid.org/0000-0002-5768-5907"
- family-names: "Ma"
  given-names: "Xinyu"
  orcid: "https://orcid.org/0000-0002-7575-1058"
- family-names: "Zhang"
  given-names: "Lixia"
  orcid: "https://orcid.org/0000-0003-0701-757X"
title: "YaNFD"
version: 1.3.0
doi: 10.1145/3460417.3482969
date-released: 2021-09-22
url: "https://github.com/named-data/YaNFD"
preferred-citation:
  type: conference-paper
  authors:
  - family-names: "Newberry"
    given-names: "Eric"
    orcid: "https://orcid.org/0000-0002-5768-5907"
  - family-names: "Ma"
    given-names: "Xinyu"
    orcid: "https://orcid.org/0000-0002-7575-1058"
  - family-names: "Zhang"
    given-names: "Lixia"
    orcid: "https://orcid.org/0000-0003-0701-757X"
  doi: "10.1145/3460417.3482969"
  conference:
    name: "ICN '21: Proceedings of the 8th ACM Conference on Information-Centric Networking"
  month: 9
  start: 30 # First page number
  end: 41 # Last page number
  title: "YaNFD: Yet another named data networking forwarding daemon"
  issue: 1
  volume: 1
  year: 2021
  publisher: "Association for Computing Machinery"
  url: "https://doi.org/10.1145/3460417.3482969"

GitHub Events

Total
  • Create event: 42
  • Release event: 6
  • Issues event: 73
  • Watch event: 14
  • Delete event: 34
  • Member event: 2
  • Issue comment event: 130
  • Push event: 532
  • Pull request review event: 136
  • Pull request review comment event: 138
  • Pull request event: 67
  • Fork event: 10
Last Year
  • Create event: 42
  • Release event: 6
  • Issues event: 73
  • Watch event: 14
  • Delete event: 34
  • Member event: 2
  • Issue comment event: 130
  • Push event: 532
  • Pull request review event: 136
  • Pull request review comment event: 138
  • Pull request event: 67
  • Fork event: 10

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 42
  • Total pull requests: 35
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 9
  • Total pull request authors: 9
  • Average comments per issue: 0.95
  • Average comments per pull request: 0.74
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 2
Past Year
  • Issues: 41
  • Pull requests: 35
  • Average time to close issues: 10 days
  • Average time to close pull requests: 6 days
  • Issue authors: 9
  • Pull request authors: 9
  • Average comments per issue: 0.93
  • Average comments per pull request: 0.74
  • Merged pull requests: 25
  • Bot issues: 0
  • Bot pull requests: 2
Top Authors
Issue Authors
  • pulsejet (17)
  • yoursunny (11)
  • Gitopolis (3)
  • iommf (3)
  • zjkmxy (2)
  • tianyuan129 (1)
  • haowaiwai (1)
  • brad-lowe (1)
  • cuizhongtao (1)
Pull Request Authors
  • pulsejet (21)
  • zjkmxy (4)
  • yoursunny (3)
  • AnoldGH (2)
  • dependabot[bot] (2)
  • tianyuan129 (2)
  • a-thieme (1)
  • jaczhi (1)
  • brad-lowe (1)
Top Labels
Issue Labels
fw (10) std (6) bug (3) dv (3) enhancement (1) documentation (1) repo (1)
Pull Request Labels
fw (4) std (4) enhancement (3) bug (2) dependencies (2) go (2) dv (1)

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 11
proxy.golang.org: github.com/named-data/ndnd
  • Versions: 11
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.9%
Average: 6.1%
Dependent repos count: 6.3%
Last synced: 6 months ago

Dependencies

go.mod go
  • github.com/apex/log v1.9.0
  • github.com/cespare/xxhash v1.1.0
  • github.com/cornelk/hashmap v1.0.1
  • github.com/davecgh/go-spew v1.1.1
  • github.com/dchest/siphash v1.2.3
  • github.com/google/gopacket v1.1.19
  • github.com/gorilla/websocket v1.5.0
  • github.com/pelletier/go-toml v1.9.4
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/stretchr/testify v1.7.1
  • github.com/zjkmxy/stealthpool v0.2.2
  • golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd
  • golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12
  • gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
go.sum go
  • github.com/OneOfOne/xxhash v1.2.2
  • github.com/apex/log v1.9.0
  • github.com/apex/logs v1.0.0
  • github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a
  • github.com/aphistic/sweet v0.2.0
  • github.com/aws/aws-sdk-go v1.20.6
  • github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59
  • github.com/cespare/xxhash v1.1.0
  • github.com/cornelk/hashmap v1.0.1
  • github.com/davecgh/go-spew v1.1.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/dchest/siphash v1.1.0
  • github.com/dchest/siphash v1.2.3
  • github.com/fatih/color v1.7.0
  • github.com/fsnotify/fsnotify v1.4.7
  • github.com/go-logfmt/logfmt v0.4.0
  • github.com/golang/protobuf v1.2.0
  • github.com/golang/protobuf v1.3.1
  • github.com/google/gopacket v1.1.19
  • github.com/google/uuid v1.1.1
  • github.com/gorilla/websocket v1.5.0
  • github.com/hpcloud/tail v1.0.0
  • github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af
  • github.com/jpillora/backoff v0.0.0-20180909062703-3050d21c67d7
  • github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515
  • github.com/kr/pretty v0.2.0
  • github.com/kr/pty v1.1.1
  • github.com/kr/text v0.1.0
  • github.com/mattn/go-colorable v0.1.1
  • github.com/mattn/go-colorable v0.1.2
  • github.com/mattn/go-isatty v0.0.5
  • github.com/mattn/go-isatty v0.0.8
  • github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b
  • github.com/onsi/ginkgo v1.6.0
  • github.com/onsi/gomega v1.5.0
  • github.com/pelletier/go-toml v1.9.4
  • github.com/pkg/errors v0.8.1
  • github.com/pkg/errors v0.9.1
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/rogpeppe/fastuuid v1.1.0
  • github.com/sergi/go-diff v1.0.0
  • github.com/smartystreets/assertions v1.0.0
  • github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9
  • github.com/smartystreets/gunit v1.0.0
  • github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72
  • github.com/stretchr/objx v0.1.0
  • github.com/stretchr/testify v1.3.0
  • github.com/stretchr/testify v1.6.1
  • github.com/stretchr/testify v1.7.1
  • github.com/tj/assert v0.0.0-20171129193455-018094318fb0
  • github.com/tj/assert v0.0.3
  • github.com/tj/go-buffer v1.1.0
  • github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2
  • github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b
  • github.com/tj/go-spin v1.1.0
  • github.com/zjkmxy/stealthpool v0.2.2
  • golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
  • golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734
  • golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550
  • golang.org/x/exp v0.0.0-20220414153411-bcd21879b8fd
  • golang.org/x/lint v0.0.0-20200302205851-738671d3881b
  • golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee
  • golang.org/x/net v0.0.0-20180906233101-161cd47e91fd
  • golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3
  • golang.org/x/net v0.0.0-20190620200207-3b0461eec859
  • golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f
  • golang.org/x/sync v0.0.0-20190423024810-112230192c58
  • golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e
  • golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
  • golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223
  • golang.org/x/sys v0.0.0-20190412213103-97732733099d
  • golang.org/x/sys v0.0.0-20220406163625-3f8b81556e12
  • golang.org/x/text v0.3.0
  • golang.org/x/text v0.3.2
  • golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
  • golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7
  • golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15
  • gopkg.in/fsnotify.v1 v1.4.7
  • gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7
  • gopkg.in/yaml.v2 v2.2.1
  • gopkg.in/yaml.v2 v2.2.2
  • gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
  • gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c
  • gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/test.yml actions
  • actions/checkout v3 composite
  • actions/setup-go v3 composite
  • zjkmxy/golang-github-actions v1.1.2 composite