Libiota release v1.1.0-rc-1
Update release notes for libiota-v1.1.0-rc-1

Change-Id: I95a4e662d9e39cfa34ddbe1350ac4649b826ba93
Reviewed-by: Prashanth Swaminathan <>
(cherry picked from commit 5420878a3e5923f095a5328dbf7751f468ad44d0)
1 file changed
tree: 50fa710436236649020f930f7ab2aeb71351c474
  1. .clang-format
  2. .gitignore
  5. Dockerfile
  7. Makefile
  10. autotest/
  11. build/
  12. device_tests/
  13. docs/
  14. examples/
  15. include/
  16. integration_tests/
  18. platform/
  19. src/
  20. templates/
  21. test/
  22. third_party/
  23. tools/

Iota Library

Iota is an implementation of Weave intended for use on microcontroller scale devices. The Iota codebase is open source and distributed under Apache 2.0 license available in the LICENSE file.

The Getting Started guide can help you figure out how to build and use the Iota library.

Source Layout


The platform/ directory contains platform-specific code. Under here you'll find directories for SoC makers and a host device which can be used to run Iota on a Linux-based machine (including embedded Linux devices such as the Raspberry Pi, BeagleBone, etc.).

Platform specific examples exist in the examples/ directory within directories corresponding to the platform type.

Please refer to platform-specific READMEs below for details about each platform.


The docs/ directory contains Iota documentation. Start with the Getting Started guide to get going.


The include/iota/ directory contains the public Iota headers.


The include/iota/cloud directory contains headers related to weave state machine.


The include/iota/schema directory contains device interfaces and trait definitions. The include/iota/schema/interfaces contains auto generated code related to device definitions. The include/iota/schema/traits contains auto generated code for trait definitions that are used in the examples.


The include/iota/provider/ directory contains the definition of the Iota HAL. Iota clients must provide an implementation for each function defined in this directory.


The examples/ directory contains a number of examples organized by platform type.


examples/common directory contains code that is common to all platforms.


examples/common/devices contains a definition of light component with all its traits.


examples/qc4010, examples/mw302 and examples/host contain example code that is specific to each platform. Let's use the qc4010 platform for the discussion below. Other platforms follow a similar directory organization.

The examples/qc4010/framework directory contains code common to all examples for qc4010 platform like connecting to Wifi and initializing CLIs. The main entry point to the libiota example application is within the directory with the name of the component. For example, examples/qc4010/light contains the main function for light device example.

The examples/host directory is a good starting point for understanding how to use Iota in your application. The light example runs natively on Linux-based devices (such as a Raspberry Pi). Additional information is available in the Getting Started guide.


The src/ directory contains the source files for the Iota library. Third party applications should not directly depend on header or implementation files under this directory.


The third_party/ directory contains external dependencies that we'd rather not download at build time.


The integration_tests/ directory contains integration tests for the Linux host and various boards with the Weave server. The source for the binaries to run on the host or board are contained here. To run the integration tests via ‘make integration_tests’, these additional dependencies required by autotest must be installed: python-numpy


The autotest/ directory contains Autotest integration tests and Iota-specific Autotest utilities. This includes the test scripts and used to exercise the Weave server and an Iota device during an integration test.


See the repository style guide.