Nabto Edge Embedded Device SDK

The Nabto Edge Embedded Device SDK is to be integrated with the vendor’s embedded device application. It then provides secure, remote and local access to the vendors application through the Nabto Edge platform. The SDK is open source and ANSI C based.

DEVICE CONTEXT

The Device Context API manages the opaque device references that all interaction with the API takes place through.

CONNECTION

The Connection API enables the application to get notified on incoming connections and query established connections. This API is typically not necessary to integrate directly with from applications.

STREAMING

The Streaming feature enables exchange of data between client and device on top of a Nabto connection using a socket like abstraction. The stream is reliable and ensures data is received ordered and complete. If either of these conditions cannot be met, the stream will be closed in such a way that it is detectable.

TCP TUNNELLING

The TCP Tunnel API is a high level wrapper for streaming, allowing applications to tunnel traffic through Nabto by integrating through a simple TCP socket, just like e.g. SSH tunnels. TCP Tunnels can hence be used to quickly add remote access capabilities to existing applications that already support TCP communication.

CoAP

The CoAP API allows exchange of CoAP message on top of a Nabto connection between a client and device. This is conceptually similar to Nabto 4 RPC but much more robust and complete.

FUTURES

The Future API makes it possible to use the async functions in this SDK either as callback based, blocking based or polled.

LISTENERS

The Listener API supports asynchronous functions that are expected to be invoked recurringly, for instance when an incoming CoAP request is received or a new stream is accepted.

AUTHORIZATION

The Authorization API allows the application to make authorization decisions for the core. That is, the core asks the application to decide if a given authorization request should be approved or rejected.

SERVER CONNECT TOKENS

Server connect tokens enable the device to decide who can access it through the server (basestation). The tokens should not be used as the only authorization mechanism but be seen as a filter for which connections is allowed from the internet to the device, e.g. to prevent DoS attacks on devices.

LOGGING

The logging API allows the application to retrieve log messages from the core SDK and configure the desired core log level.

MISC - MDNS, VERSION INFO, ERRORS, STRINGS

Functions for starting the optional MDNS server, getting the SDK version, accessing error info and freeing SDK allocated resources.