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

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.
  • Fiber coroutine core for elegant non-blocking code.
  • Less than 200K code.
Learn more
Ioto Agent

HTTP Server

This 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 request per second (Raspberry PI).
  • Tiny footprint: Web server component is 25K code.
Learn more
Json

Action Routines

Direct binding of URL requests to C functions

  • Configurable routing of requests by URL patterns.
  • Bind action routines (C functions) to URL paths.
  • Request body, forms and query parameters are pre-processed for easy access.
  • User role is authenticated before granting access to action routine.
  • Stream request and response body 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

HTTP Client

Connect to external services and data sources.

  • Transfer chunk encoding and subscribe MQTT messaging client.
  • Modelled on Browser Fetch API.
  • SSL/TLS encryption.
  • Full support for HTTP method verbs.
  • Stream request and response body for large data transfers.
  • Parallelism via fiber coroutines. No ugly callbacks or complex threads.
  • Convenience 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

Embedded Database

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

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 complext threads or the complexity of callbacks

  • Support straight-line non-blocking code patterns.
  • Network routines are fiber aware for automatic yielding while waiting for I/O.
  • Ioto services are fiber aware including: HTTP server, HTTP client and MQTT client.
  • Extremely fast fiber creation.
  • Sandbox limits on fiber count.
  • Low level fiber API to explicitly yield, resume and spawn fibers.
Learn more
MQTT Pub / Sub

Safe Runtime

Battle hardened runtime after extensive peer-review and fuzz stress testing.

  • Portable, cross-platform O/S abstraction.
  • Safe strings, lists, hashing and buffer management.
  • Event and timer scheduling.
  • Fiber coroutines for non-blocking procedural programming model.
  • JSON parser and renderer.
  • JSON query engine.
  • Logging framework – filter by source and/or message type.
  • Global memory error handler.
Learn more
Safe Runtime

Kickstart Device Management

Accelerate your local device management application.

  • VueJS single-page application sample to use as a base for your device management application.
  • 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
  • Efficient design and imposes little load on the device.
Learn more
MQTT Pub / Sub

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.