The Most Advanced Embedded Web Server

The Ioto agent contains our most advanced embedded web server and is perfect for serving local device management apps. It is blazing fast and extremely compact.

Ioto

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 200K code.
Learn more
Ioto Agent

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.
Learn more
Json

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.
Learn more
Json

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.
Learn more
HTTP Client

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.
Learn more
Embedded Database

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.
Learn more
MQTT Pub / Sub

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 (HTTP server, HTTP client and MQTT client).
  • Extremely fast fiber operations.
  • Sandbox limits on resource usage.
  • Low level fiber API to explicitly yield, resume and spawn fibers.
Learn more
MQTT Pub / Sub

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.
Learn more
Safe Runtime

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.
Learn more
Kickstart

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 advanced embedded web server

  • Includes complete source code, documentation and samples.
  • Free evaluation via the Builder EmbedThis Builder.