Skip to content

Embedthis Ioto™ Features

  • HTTP/1.1 server with dynamic rendering, authentication, cookies, sessions and file upload.
  • HTTP/1.1 client.
  • MQTT/3.1.1 client.
  • Embedded database (like local DynamoDB).
  • Transparent DynamoDB database cloud synchronization.
  • JSON/5 parser and query engine.
  • AWS IoT integration with IoT Core, Shadows, Events and Rules.
  • AWS service integration with S3, Lambda, Kinesis and CloudWatch.
  • Transparent database synchronization with DynamoDB.
  • Transport Layer Security (TLS/SSL) with ALPN support.
  • Safe, secure runtime core.
  • State persistence to JSON configuration files.
  • Easy provisioning.
  • OTA upgrading.
  • Complete documentation.
  • Extensive Samples.
  • Full Source code.

Feature Overview

Management Applications

The Ioto Agent source distribution includes several sample management applications that are integrated with Ioto.

The management apps are browser-based VueJS apps that communicate with either the local Ioto web server or with the cloud-based Ioto service.

Name Directory Description
manager apps/manager Cloud-based device manager developer console for Ioto
console apps/console Local developer console for Ioto
kickstart apps/kickstart Local Kickstart sample "router" management app
empty apps/empty Empty application to resolve application hooks
auth apps/auth Test user login and authentication app
unit apps/unit Unit tests app

AWS IoT Integration

  • AWS IoT Ready — Bring your own cloud.
  • Capture device data and export to AWS.
  • Send control plane data to AWS IoT shadows.
  • Transparent database synchronization with AWS DynamoDB.
  • Stream bulk device data to AWS S3 data lake or Kinesis.
  • Store device logs, metrics in AWS CloudWatch.
  • Keep an audit trail in CloudTrail.

MQTT Client

  • MQTT 3.1.1 support.
  • TLS encryption with ALPN over port 443.
  • Supports connect, publish, subscribe, ping and disconnect messages.
  • Message quality of service for reliable delivery.
  • Retained messages.
  • High message throughput with exceptionally low overhead.
  • Wait for delivery or acknowledgement options.
  • Auto reconnect.
  • Parallelism via fiber coroutines.

Embedded Database

  • High performance in-memory NoSQL management document database (DynamoDB lite).
  • Red/black binary search indexes.
  • JSON documents with in-memory query API.
  • Controllable persistence locally and to the cloud on a per-table basis.
  • Transparent bidirectional data synchronization with the cloud. (like Global Tables).
  • Unified data schema between device and cloud databases.
  • Based on DynamoDB OneTable API.

HTTP Server

  • HTTP/1.0, HTTP/1.1 support.
  • TLS/SSL 1.3 and ALPN support.
  • URL actions that bind URLs to C functions.
  • Configurable request routes and redirections.
  • Supports transfer chunk encoding to preserve keep-alive.
  • Cookie and session management.
  • Authentication and user management.
  • Request tracing for HTTP request and response headers.
  • Sand-box resource limits.
  • Runtime configurable via JSON config files.
  • HTML helpers for encoding, decoding and escaping content.
  • JSON parser and query engine.
  • Single-threaded, fiber coroutine event-based runtime.

Safe Runtime

  • JSON parser and renderer.
  • JSON query engine.
  • Fiber coroutines for non-blocking procedural programming model.
  • Global memory error handler.
  • Logging framework —— filter by source and/or message type.
  • Safe strings, lists, hashing and buffer management.
  • Portable, cross-platform O/S abstraction.

Performance

  • Tiny memory footprint. Web server component is 25K code. Total is 96K code.
  • Single-threaded fiber coroutines provide an elegant, non-blocking, procedural programming paradigm without resorting to clumsy callbacks or complex threads.
  • Web server request throughput (> 9,300 requests per second on Raspberry Pi 4).

Security

  • Sandbox limits.
  • Safe portable runtime to protect against memory leaks and buffer overflows.
  • Transport Layer Security (TLS/SSL).

Developer Integration

  • Run supplied Ioto program or embed Ioto library.
  • Shared and static libraries supported.
  • Easy, intuitive programming model.
  • Extensive C API.

Documentation

  • Full C API Documentation.
  • Cookbook of samples (cut and paste to get going).
  • Tutorials.

Platform Support

  • Linux
  • MAC OS X
  • FreeBSD
  • FreeRTOS (pending)
  • RIOT (pending)

Embedding Support

  • Supports ARM, MIPS, X86, X64, PPC, SH, Sparc processors.
  • Full cross-compilation support. Use Windows, Linux or Mac as build system.
  • Fine-grained control for conditional build and compilation.

Standards