Caution
pouch
is under active development and breaking changes may be introduced at
any time.
pouch
is a non-IP protocol for communication between devices and cloud
services, typically through one or more gateways.
The pouch
repository is a Zephyr
module and can be
included in any Zephyr project by adding the following to the project's
west.yml
file.
- name: pouch
path: modules/lib/pouch
revision: main
url: https://github.com/golioth/pouch.git
pouch
depends on the zcbor
Python tooling. Use the following command to install it in your environment.
pip install -r modules/lib/pouch/requirements.txt
pouch
messages ("pouches") are delivered over a transport. Transport
implementations can be found in the src/transport
directory. Currently, implementations for the following transports are provided
in this repository.
The ble_gatt
transport delivers pouches over Bluetooth Low Energy (BLE)
Generic Attribute (GATT) Profile. An example of using pouch
with the
ble_gatt
transport can be found in the
examples/ble_gatt
directory.
The golioth_sdk
implements Golioth device management, data
routing, and application services over pouch
. The table below indicates the
current status of support for each device-facing service.
Service | Supported |
---|---|
Logging | ✅ |
OTA | ✅ |
Remote Procedure Calls (RPCs) | |
Settings | ✅ |
State | |
Stream | ✅ |