libiota-v1.0.0-rc-1 tag

Released on 10.28.2016
Add note to README to turn off logging during load test

Change-Id: I1299e877d5b2524f72019b9798aa16966e713e18
Reviewed-by: Bhaskar Borthakur <>
1 file changed
tree: a1c303d0fc556f4f88bc97239a2f6ac65c26af57
  1. .clang-format
  2. .gitignore
  5. Dockerfile
  7. Makefile
  10. autotest/
  11. build/
  12. docs/
  13. examples/
  14. include/
  15. integration_tests/
  17. platform/
  18. src/
  19. templates/
  20. test/
  21. third_party/
  22. tools/

Iota Library

Weave is an open standard for secure device setup and message passing and is described in detail on the Google Weave homepage.

Iota is an implementation of the Weave protocol 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.

Iota requires access to the Weave server as well as few tools that are only open to Weave early access partners. If you don’t have access to and would like access, please contact your Google business representative or fill out the Request an Invite form and mention Iota in the Please provide a brief description of the device(s) you plan to build (or provide a link) question - it can take a few weeks to get access.

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.


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.