EmbedThis Ioto® Agent Features 
- HTTP/1.1 server.
 - HTTP/1.1 client.
 - MQTT/3.1.1 client.
 - JSON/5 parser and query engine.
 - Embedded database (like local DynamoDB)
 - Transparent DynamoDB database cloud synchronization.
 - AWS IoT Integration with IoT Core, Shadows, Events and Rules.
 - AWS service integration with S3, Lambda, Kinesis and CloudWatch.
 - Transport Layer Security (TLS/SSL) with ALPN support.
 - Safe, secure runtime core.
 - Easy provisioning.
 - Over-the-air 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.
 - Upload data and files to AWS S3 data lake.
 - Store device logs, metrics in AWS CloudWatch.
 - Generate and rotate IAM temporary access credentials.
 - Call any AWS API via AWS SDK or more compact AWS REST SigV4 APIs.
 - Keep an audit trail in CloudTrail.
 
MQTT Client 
- MQTT 3.1.1 support.
 - On-demand connection management.
 - TLS encryption with ALPN over port 443.
 - Supports connect, publish, subscribe, ping and disconnect messages.
 - Message quality of service for reliable delivery.
 - Retained messages.
 - Subscription pooling via master subscription topic.
 - High message throughput with exceptionally low overhead.
 - Wait for delivery or acknowledgement options.
 - Auto reconnect.
 - Scheduled connections and configurable timeouts and retries.
 - Parallelism via fiber coroutines.
 
DynamoDB Local Database 
- High performance in-memory NoSQL document database.
 - Red/black binary search indexes.
 - JSON documents with in-memory query API.
 - Controllable persistency locally and to the cloud on a per-table basis.
 - Transparent bi-directional data synchronization with DynamoDB in the cloud. (like Global Tables).
 - Unified data schema between device and cloud databases.
 - Database triggers.
 - Based on DynamoDB OneTable APIs and Schemas.
 
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 bi-directional transfer chunk encoding to preserve keep-alive.
 - Cookie and session management.
 - Authentication and user management.
 - Fully streaming API for dynamic input and output.
 - 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, parallel fiber coroutine event-based runtime.
 
HTTP Client 
- HTTP/1.0, HTTP.1.1 client.
 - Fully streaming API for dynamic input and output.
 - Convenience JSON API for interacting with REST services.
 - Single-threaded, parallel fiber coroutine event-based runtime.
 - TLS/SSL 1.3 with certificate verification controls.
 
JSON Parser and Engine 
- JSON and JSON/5 support.
 - JSON parser and renderer.
 - JSON query engine.
 
Safe Runtime 
- Fiber coroutines for non-blocking procedural programming model.
 - Global memory error handler.
 - Networking and TLS support.
 - Logging framework —— filter by source and/or message type.
 - Safe strings, lists, hashing and buffer management.
 - Safe, secure printf that is tolerant of null args.
 - Portable, cross-platform O/S abstraction.
 
Performance 
- Tiny memory footprint. All-up is less than 200K code.
 - Single-threaded fiber coroutines provide an elegant, non-blocking, procedural programming paradigm without resorting to ugly 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 
- Stand-alone Ioto program
 - Embeddable Ioto library
 - 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 (2.6+)
 - MAC OS X (10.7+)
 - FreeBSD (10.X+)
 - FreeRTOS
 - ESP32
 - Easily ported to new platforms
 
Ioto is portable and users may wish to port Ioto to other operating systems. Support is available to assist in such efforts.
Embedding Support 
- Supports ARM, MIPS, X86, X64, PPC, RiscV, SH, Sparc processors
 - Full cross-compilation support. Use Linux or Mac as build system
 - Fine-grained control for conditional build and compilation
 
