esp8266ndn
esp8266ndn copied to clipboard
NDN Arduino library for ESP8266 and more
trafficstars
NDN Arduino library for ESP8266 and more
esp8266ndn library enables Named Data Networking application development in Arduino environment. It supports ESP8266, ESP32, ESP32-S2, ESP32-C3, and Adafruit nRF52 microcontrollers.
- Doxygen documentation
- #esp8266ndn on Twitter for announcements
- GitHub Issues for bug reports and best-effort support
Features
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
- Ethernet: unicast and multicast on ESP8266 and ESP32
- UDP/IPv4: unicast and multicast on ESP8266 and ESP32
- UDP/IPv6: unicast on ESP8266
- Bluetooth Low Energy: server/peripheral only on ESP32 and nRF52
KeyChain
- Crypto
- SHA256: yes (using BearSSL on ESP8266, Mbed TLS on ESP32, Cryptosuite on nRF52)
- ECDSA: P-256 curve only (using Mbed TLS on ESP32, micro-ecc on ESP8266 and nRF52)
- HMAC-SHA256: yes (using BearSSL on ESP8266, Mbed TLS on ESP32, Cryptosuite on nRF52)
- RSA: no
- Ed25519: no
- Null: yes
- NDN certificates: basic support
- Persistent key and certificate storage: binary files
- ESP8266: using LittleFS
- ESP32: using FFat (in Arduino Tools menu select "Partition Scheme: with FAT")
- nRF52: using InternalFileSystem
- 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
- ESP32 only
- supported challenges: "nop" and "possession"
- NDN-FCH client for connecting to the global NDN testbed and other connected networks
- ESP8266 and ESP32 only
- UnixTime client for time synchronization
Installation
- Clone NDNph and this repository under
$HOME/Arduino/librariesdirectory. - Add
#include <esp8266ndn.h>to your sketch. - Check out the examples for how to use.