NDNph provides Named Data Networking packet encoding and more in a header-only C++11 library. It is part of esp8266ndn that supports microcontroller programming in Arduino IDE. NDNph can also work independently on Linux and other platforms.
- Doxygen documentation together with esp8266ndn
- #NDNph on Twitter for announcements
- GitHub Issues for bug reports and best-effort support
Packet encoding and decoding
- Interest and Data
- v0.3 format only
- TLV evolvability: yes
- forwarding hint: yes, limited to one name
- NDNLPv2
- fragmentation and reassembly: yes, requires in-order delivery
- Nack: partial
- PIT token: yes
- congestion mark: no
- link layer reliability: no
- Signed Interest: v0.3 format
- Naming Convention: rev3 format
Transports
- UDP: IPv4 and IPv6, unicast only
- shared memory packet interface (memif)
KeyChain
- Crypto: using Mbed TLS library
- SHA256: yes
- ECDSA: P-256 curve only
- HMAC-SHA256: yes
- RSA: no
- Ed25519: no
- Null: yes
- NDN certificates: basic support
- Persistent key and certificate storage: binary files
- Trust schema: no
Application layer services
- ndnping server and client
- segmented object producer and consumer
- Realtime Data Retrieval (RDR) metadata producer and consumer
- NDNCERT server and client
- supported challenges: "nop" and "possession"
For Arduino, see esp8266ndn instructions.
For Linux,
- Install dependencies
- C++ compiler such as GCC, install Ubuntu package
build-essential
- Meson, install pip package
meson
- Ninja build system, install Ubuntu package
ninja-build
- Mbed TLS 2.16+ or 3.x, install from source or Ubuntu package
libmbedtls-dev
- Boost header-only libraries, install Ubuntu package
libboost-dev
- libmemif 4.0, install from VPP 22.06+ source
- Note: all dependencies are optional, but omitting a dependency may necessitate extra porting work
- C++ compiler such as GCC, install Ubuntu package
- Create build directory:
meson setup build
- Enter build directory and execute build:
meson compile -C build
- Run unit test (optional):
meson test -C build
- Install headers to system:
sudo meson install -C build
- Add
#include <NDNph-config.h>
and#include <NDNph.h>
in your project, and start coding. - Check out the example programs for how to use.
To use as a Meson subproject, copy and modify the sample Wrap file.