Skip to content

golioth/pouch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

436 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pouch

Caution

pouch is under active development and breaking changes may be introduced at any time.

pouch is a transport-agnostic application layer protocol that enables secure and efficient transmission of data between intermittently offline nodes across multiple network hops. Communication over pouch is always between a Device and a Broker. A single physical device may act as a gateway for other devices by implementing both device and broker support.

Platforms and Transports

pouch is portable across platforms and transports. The following tables describe device and broker transport support across platforms.

Device

Transport Zephyr ESP-IDF
BLE GATT Server
HTTP Client

Broker

Transport Zephyr ESP-IDF
BLE GATT Client

Documentation for each supported platform is provided below. While pouch may work with other platform versions, only those that are continuously tested and verified are listed.

Zephyr

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

See the Zephyr examples for more information.

Supported Versions

  • v4.3.0

nRF Connect SDK (NCS)

pouch can also be used with the nRF Connect SDK (NCS), a downstream fork of Zephyr, using the same steps described above.

Supported Versions

  • v3.2.3

ESP-IDF

The pouch repository includes multiple ESP-IDF components. See the ESP-IDF examples for more information on how to include them in an application.

Supported Versions

  • v5.4.1

Service SDKs

While pouch can be used directly in the same way that any network protocol can be used directly, SDKs are commonly built on top of pouch to present a higher-level interface to applications. SDKs built on top of pouch are able to leverage all of the supported underlying transports.

Most SDKs are external to the pouch repository and maintain dedicated documentation and examples. In-tree service SDKs are documented below.

Golioth Service SDK

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

About

A non-IP protocol for communication between devices and cloud services

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors