The Most Intelligent Embedded Web Server
The Ioto agent contains our most intelligent embedded web server and is perfect for serving local device management apps. It is blazing fast and extremely compact.
Ioto ® Local Device Management
Ioto incorporates everything we've learned over 20 years developing embedded devices. It is our most intelligent embedded web server and is perfect for creating web management applications (especially single-page-apps). Ioto uses fiber coroutines so you don't have to struggle with multi-threaded programming or callback-hell. Ioto includes an embedded HTTP web server, HTTP client, embedded database and JSON parsing in under 300K code.
The Ioto Device Agent
Device agent with embedded web server
- Embedded web server for direct local management.
- HTTP Client for accessing external services.
- High performnance embedded database for efficient state storage.
- JSON parser and JSON management.
- User management and access controls.
- Embedded database for efficient state storage.
- Fiber coroutine core for elegant non-blocking code.
- Less than 300K code.
The HTTP Server
The most productive way to create web management apps
- Blazing fast, secure and compact HTTP server.
- HTTP/1.1 and SSL/TLS.
- Request routing and redirections.
- Sessions and cookie management.
- Authentication and user management.
- High performnance embedded database for device data.
- Actions routines bind URLs to C functions.
- Transfer chunk and mulit-part mime file upload.
- JSON parser and query engine.
- Sandbox resource limits.
- HTML helpers for encoding, decoding and escaping.
- Extensive hooks for customizing functionality.
- Easy extensions via the simple integration API.
- Hardened security from extensive peer-review and fuzz stress testing.
- Parallelism via fiber coroutines. No ugly callbacks or complex threads.
- Unrivaled performance: >9,300 requests per second (Raspberry PI).
- Tiny footprint: Web server component is 25K code.
Dynamic Web Content
Action routines bind URL requests to C functions.
- Direct binding of action routines (C functions) to URL paths.
- Configurable routing of requests by URL patterns.
- Request body and parameters are pre-processed for easy access.
- User role is authenticated before granting access to action routine.
- Support for streaming request and response for large data transfers.
- HTML helpers for encoding, decoding and escaping.
- Integrated support for file upload and post-processing by action routines.
The HTTP Client
Connect to external services and data sources.
- Modelled on Browser Fetch API.
- SSL/TLS encryption.
- Full support for all HTTP method verbs.
- Stream request and responses for large data transfers.
- Parallelism via fiber coroutines. No ugly callbacks or complex threads.
- Support for JSON request and response bodies.
- Easily set request headers and access response headers.
- Tiny footprint: HTTP client component is 6K.
The Embedded Database
A high performance, caching document database.
- JSON document items with flexible query API.
- Fast 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 MQTT Client
Connect to the external services via MQTT.
- 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.
- Retained message support.
- Parallelism via fiber coroutines. No ugly callbacks or complex threads.
- Elegant, non-blocking procedural API.
- Tiny footprint: MQTT component is 8K.
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.
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.
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 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 your local device management app.
Get Started with Ioto
The most intelligent embedded web server
- Includes complete source code, documentation and samples.
- Free evaluation via the Builder EmbedThis Builder.