package
0.0.0-20250328141702-0be2411d0833
Repository: https://github.com/usnistgov/ndn-dpdk.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
NDNgo: Named Data Networking in Go
NDNgo is a minimal Named Data Networking library compatible with the NDN-DPDK forwarder. The main purpose of this library is for implementing unit tests and management functionality of NDN-DPDK. It also serves as a demonstration on how to create a library compatible with NDN-DPDK.
NDNgo does not depend on Cgo, and can be used in external projects via Go Modules. It is intended to be cross-platform, and part of the library can be compiled for WebAssembly via TinyGo compiler. However, this is not a high performance library, and there is no API stability guarantees.
Features
Packet encoding and decoding
- General purpose TLV codec (in package tlv)
- Interest and Data: v0.3 format only
- TLV evolvability: yes
- Forwarding hint: yes
- Signed Interest: basic support
- NDNLPv2
- Fragmentation and reassembly: partial
- Nack: yes
- PIT token: yes
- Congestion mark: yes
- Link layer reliability: no
- Naming Convention: rev3 format (TLV-TYPE numbers)
Transports
- Unix stream, UDP unicast, TCP (in package sockettransport)
- Ethernet with AF_PACKET socket (in package ethertransport)
- Shared memory with local NDN-DPDK forwarder via memif (in package memiftransport)
- WebSocket for WebAssembly (in package wasmtransport)
KeyChain
- Encryption: no
- Signing algorithms
- SHA256: yes
- ECDSA: yes
- RSA: yes
- HMAC-SHA256: no
- Ed25519: proof of concept only
- Null: yes
- NDN certificates: basic support
- SafeBag: import and export
- Persistent key and certificate storage: no
- Trust schema: no
Application layer services
- Endpoint: yes
- Segmented object: consumer and producer (in package segmented)
- Realtime Data Retrieval (RDR): metadata structure (in package rdr)
Management integration:
- Connecting to NDN-DPDK: yes (in package gqlmgmt)
- Connecting to NFD and NDNd: yes (in package nfdmgmt)
- NDN-FCH 2021: client (in package fch)
Getting Started
The best places to get started are:
Consume
function in package endpoint: express an Interest and wait for response, with automatic retransmissions and Data verification.Produce
function in package endpoint: start a producer, with automatic Data signing.l3.Face
type in package l3: network layer face abstraction, for low-level programming.
Examples are in command ndndpdk-godemo.