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
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.
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.
Linux (2.6+)
Windows (7+)
MAC OS X (10.7+)
FreeBSD (10.X+)
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
Back to top