Weave is a set of application-level networking protocols built around a common addressing and naming architecture with low overhead serialization protocols and modern security.
Weave protocols deliver device-to-device, device-to-mobile, and device-to-cloud communication for both control and data in the Internet of Things (IoT) space. While Weave is architected around IPv6, it can utilize any IP network or point-to-point communication technology such as BLE.
Weave was designed with the following goals in mind:
- Low overhead — Lightweight solution for low-power devices
- Pervasive — Scalable and unified protocol everywhere
- Robust — Leverages Thread® and is self-healing to the cloud
- Secure — Interactions are secure, even when the network is not
- Easy to use — Flexible setup and configuration
- Versatile — Strongly-typed data for powerful interaction
If you're new to Weave, understanding the basics are critical to using OpenWeave in your own applications. OpenWeave is the open-source implementation of Weave that makes available certain core components. The goal of this primer is to explain the concepts behind Weave and how it works, and provide a springboard to OpenWeave development.
This primer assumes you have a good working knowledge of the following:
- Networking and routing concepts
- Protocol Buffers
Familiarity with Wi-Fi technology and the Thread networking protocol is not required, but good to have.
Throughout this primer, we'll use various icons inline with the text or in diagrams to represent elements of the Weave system. These icons are used to aid in your understanding of Weave by highlighting common elements and are not official Weave-branded icons.