Skip to content

9th-ndn-hackathon/esp8266ndn

 
 

Repository files navigation

NDN Arduino library for ESP8266 and more

esp8266ndn library enables Named Data Networking application development in Arduino environment. It supports ESP8266, ESP32, and Adafruit nRF52 microcontrollers.

Features

Packet encoding and decoding

  • Interest, Data, and Nack
    • Decoding recognizes both v0.2 and v0.3 formats
    • Interest encoding defaults to v0.3 format
  • 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

Installation

Clone this repository under $HOME/Arduino/libraries directory. Add #include <esp8266ndn.h> to your sketch. Check out the examples for how to use.

About

NDN Arduino library for ESP8266 and more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 69.1%
  • C++ 28.0%
  • Objective-C 2.0%
  • Other 0.9%