The Most Advanced Device Agent
Blazing Fast, Incredibly Compact
The Ioto agent is our most advanced device agent yet for device-based or cloud-based device management. 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.
Blazing fast, compact and secure device agent
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).
Embedded Web Server
For Local Device Management
- 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 chunking and 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.
- Automatic removal of expired data items.
- Per-table caching and buffering to control persistency.
- 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.
- Lower device connection cost via on-demand and scheduled connections.
- 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, printf, 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.
Hardware Support
Extensive micro-controller and embedded system support.
- Operating environments: ESP32, FreeBSD, FreeRTOS, Linux, Mac OS X, QNX, Quadros, VxWorks, Windows.
- CPU architectures: arm, arm64, mips, mips64, ppc, ppc64, riscv, riscv64, tidsp, sh, x86, x64 and xtensa.
- Extensive list of supported micro-controllers and CPU boards.
Sample Device Management Apps
Suite of sample apps for mobile and desktop.
- Safe months of development time with full source code sample apps.
- Use, modify, extend and distribute samples as your device apps.
- VueJS sample apps for local or cloud-based management.
- Samples provide flexible and intuitive UI/UX for device management.
- Includes login and registration with user management.
- Granular user access role control per page.
- Navigation for simple or complex devices.
- Dynamic display via data tables and graphical widgets.
- Property editing of any device data.
- Monitoring Dashboards with graphical widgets.
- 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. The Ioto agent samples 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.
- Pay-as-you-go. Only pay for actively connected devices.
- 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 for storage, management and analysis.
- Command and control one or millions of devices from a single location.
- Transparent data synchronization from device to cloud.
- Unlimited per-device or fleet data metrics.
- Manage offline and transiently connected devices with command queues.
- Over the air firmware updates managed securely by the Ioto 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.