esp8266ndn library enables Named Data Networking application development in Arduino environment. It supports ESP8266, ESP32, and Adafruit nRF52 microcontrollers.
- Doxygen documentation
- #esp8266ndn on Twitter for announcements
- ndn-lib mailing list for best-effort support
Packet encoding and decoding
- Interest, Data, and Nack
- Signed Interest: 2014 format
- Naming Convention: 2014 format
Transports
- Ethernet: unicast and multicast
- ESP8266: yes, requires lwIP 1.4 (in Arduino Tools menu select "lwIP Variant: v1.4 Higher Bandwidth")
- ESP32: yes
- UDP: unicast and multicast
- ESP8266: yes
- ESP32: yes
- Bluetooth Low Energy
- ESP32: server/peripheral and client/central
- nRF52: server/peripheral only
- LoRa radio
- ESP32: yes, only tested with Heltec WiFi_LoRa_32 board
Crypto
- SHA256 and HMAC-SHA256
- ESP8266: yes, using BearSSL from Arduino Core
- ESP32: yes, using mbed TLS from ESP-IDF
- nRF52: yes, using CryptoSuite
- ECDSA
- ESP8266: yes, using micro-ecc 'static'
- ESP32: yes, using mbed TLS from ESP-IDF
- nRF52: insecure, lacks random number generator integration
Forwarding
- ndn-lite forwarder
- experimental, only tested with ESP8266
Application layer services
- ndnping server and client
- NDN-FCH client for connecting to the global NDN testbed
- ESP8266 and ESP32 only
- UnixTime client for time synchronization
Clone this repository under $HOME/Arduino/libraries
directory.
Add #include <esp8266ndn.h>
to your sketch.
Check out the examples for how to use.