Official Waggle Python message module.
Project description
pywagglemsg
Tiny Python library for (de)serializing Waggle messages. Although this is a public module, it's mostly geared towards building internal tools and services.
Example
import wagglemsg
msg = wagglemsg.Message(
name='env.temperature.htu21d',
value=10,
timestamp=1602704769215113000,
meta={
"device": "bme280",
},
)
data = wagglemsg.dump(msg)
# ... send data over the network ....
Protocol Description
This version of the protocol is very different than the previous Waggle binary protocol. The main focus is now on having a simple wire format that can be extended to support projects like Sage.
Overview
Conceptually, the prototol encodes "tagged timeseries" by providing fields for:
- Timestamp - Time of measurement in nanoseconds.
- Name - Name of measurement.
- Value - Value of measurement.
- Meta - Key-value "tags" used to track metadata.
Wire Format
The current wire format implementation is a JSON payload with fields:
ts
. nanoseconds since epoch (int64)name
: name of measurement (string)val
: value of measurement (any JSON encodable type)meta
: metadata tags (map[str]str)enc
: optional value encoding (either ommited or "b64" when binary encoded to base64)
We show a couple reference examples here.
{
"ts": 1613485750303896000,
"name": "env.temp.htu21d",
"val": 23.1,
"meta": {
"plugin": "metsense:1.0.3"
}
}
{
"ts": 1613485750303896000,
"name": "raw.htu21d",
"val": "AQIDBA==",
"meta": {
"plugin": "metsense:1.0.3"
},
"enc": "b64"
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pywagglemsg-0.4.0.tar.gz
(3.7 kB
view hashes)
Built Distribution
Close
Hashes for pywagglemsg-0.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be4ef5bb4bfaae77f4c3c47d775df5c2b89ff3f49c17154b434e41106ef79bae |
|
MD5 | 89a6eb96d58c589a8156ef6b869d75d4 |
|
BLAKE2b-256 | 80d37e098b5d422a83c9a9e19256901943d493793405f98bac61911a5694a653 |