The Most Advanced Device Agent
Blazing fast, Incredibly Compact
The Ioto agent is our most advanced device agent yet. It is cloud-ready and integrates seamlessly with our Ioto cloud service based on the renowned AWS IoT cloud. Ioto includes an embedded HTTP web server, MQTT client, HTTP client, embedded database, JSON parsing, AWS cloud integration, easy provisioning and OTA upgrading. All in under 300K code.
Manage from Anywhere
The Ioto Device Agent
A cloud-ready Device agent with an embedded web server.
- Integrated embedded web server for direct local management.
- Optional Cloud-based device management via MQTT.
- Transparent device data synchronization with the cloud.
- Integration with AWS IoT, DynamoDB, CloudWatch, S3, Kinesis and Lambda.
- HTTP Client for accessing external services.
- Embedded database for efficient state storage.
- Simplified device and fleet provisioning.
- Blazing fast and compact (less than 300K code).
The Embedded Web Server
Manage locally via HTTP.
- Fast, secure and compact embedded web server.
- HTTP/1.1 and SSL/TLS.
- Sessions and cookie management.
- Authentication and user management.
- High performance embedded database for device data.
- URL actions bind URLs to C functions with exceptional performance.
- Transfer chunk and mulit-part mime file upload.
- HTML helpers for encoding, decoding and escaping.
- Tiny footprint: Web server component is 25K code.
- Unrivaled performance: >9,300 requests per second on a Raspberry PI.
- Easy extensions via the simple integration API.
- Hardened security due to extensive peer-review and fuzz stress testing.
The Embedded Database
A high performance, in-memory document database.
- JSON document items with flexible query API.
- Fast in-memory red/black binary search indexes.
- Database schema to define and validate data items.
- Controllable journal-based persistency and change triggers.
- Efficient import and export of database items.
- Based on AWS DynamoDB OneTable.
- Simple, non-blocking API.
The HTTP Client
Connect to external services and data sources.
- Modelled on Browser Fetch API.
- Full support for all HTTP method verbs.
- Stream request and response body for large data transfers.
- Parallelism via fiber coroutines. No ugly callbacks or complex threads.
- Easily set request headers and access response headers.
- Support for JSON request and response bodies.
- SSL/TLS encryption.
- Tiny footprint: HTTP client component is 6K.
The MQTT Client
Connect to the cloud to send or receive device data.
- Publish and subscribe MQTT messaging client.
- MQTT 3.1.1 compliant.
- SSL/TLS encryption with ALPN over port 443.
- Supports connect, publish, subscribe, ping and disconnect messages.
- Message quality of service for reliable delivery.
- Parallelism via fiber coroutines. No ugly callbacks or complex threads.
- Retained message support.
- Elegant, non-blocking procedural API.
- Tiny footprint: MQTT component is 8K.
The Safe Runtime
Portable, cross-platform O/S abstraction layer.
- Efficient embedded runtime to protect against security threats.
- Battle-hardened after extensive peer review and stress testing.
- Safe strings, lists, hashing and buffer management.
- Event and timer scheduling.
- Fiber coroutines for non-blocking procedural programming model.
- JSON parser, renderer and query engine.
- Flexible logging support.
- Global memory error handler.
Fiber Coroutines
Parallelism without complex threads or the complexity of callbacks.
- Support multiple requests with straight-line, non-blocking code patterns.
- Ioto services are fiber aware and automatically yield while waiting for I/O.
- Extremely fast fiber switching operations.
- Sandbox limits on resource usage.
- Low level fiber API to explicitly yield, resume and spawn fibers.
Kickstart Device Management
A sample device manager web app.
- VueJS single-page application sample for local device management over HTTP.
- Flexible and intuitive UI/UX for device management.
- Login and registration with user management.
- Navigation for simple or complex devices.
- Granular user access role control per page.
- Dynamic display via data tables and graphical widgets.
- Property editing of any device data.
- Monitoring Dashboards.
- Library of display widgets including: gauges, graphs, buttons, images and tables.
- Highly efficient and imposes little load on the device.
Developing an effective device UI can take much longer than you think. Most companies expend years of developer time creating their device UIs. Kickstart for Ioto is a sample device management application that can dramatically shorten your development cycle for creating a bespoke local device management app.
Cloud-based Management
The Ioto Agent is pre-integrated with the AWS IoT cloud.
- Optionally enable cloud-based management per-device at any time.
- Centrally manage one or many devices from the cloud.
- Transparent provisioning with X.509 certificates for secure communications.
- Securely send device data to the cloud.
- Command and control one or millions of devices from a single location.
- Transparent data synchronization from device to cloud.
- Locally invoke AWS APIs on the device to interact with any AWS service.
- Easily create device clouds in any AWS region via the Device Builder.
Get Started with Ioto
Integrate with the cloud or run stand-alone
- Includes complete source code, documentation and samples.
- Free evaluation via the EmbedThis Builder.