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
Built Distribution
Close
Hashes for pywagglemsg-0.3.0.post1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7960240e54c2e2f74969ac670759b098f244c54ef7ab20a8035e822ab4ca298b |
|
MD5 | f10cb0ecdafb888fdcf4821c926bcb6b |
|
BLAKE2b-256 | 5172cb90d776c0b2eb3e50409a0324169de8f058071f87b58c62fccf10153b11 |