The Robonomics Framework
This release native runtime: IPCI chain version
5
, Robonomics chain version84
.
During the development of Robonomics Network a lot of experiments happen. Tons of code written and erased after use. It was expected that many Smart City and Industry 4.0 cases could match by not so large count of programming patterns. We decide to generalize it as a set of open-source packages with the name Robonomics Framework
.
Robonomics Crates
Link: https://crates.robonomics.network
Structure of Robonomics Framework followed.
- Robonomics Protocol - network library that provides primitives to build P2P communication for Industry 4.0 and Smart City cases.
- Robonomics IO - stream-oriented library with support general set of sensors and actuators (including virtual devices like PubSub or stdin/stdout) that makes hardware interaction easy.
- Robonomics CLI - console line primitives that make framework functions runnable.
- Robonomics Frame - a collection of pallets suitable for Smart City and Industry 4.0 cases.
- Robonomics Node - substrate-based blockchain node with Robonomics Network extensions.
Robonomics Pipelines
Pipelines intro
Not all cases require a programming challenge. In most cases is possible to build a pipeline and solve it as stream processing task.
For example, bash pipeline looks like:
$ cat my_data.txt | sha256sum > my_data.sum
This sentence read a text file, calc SHA256 sum of content, and write it into a different file.
Robonomics I/O
Especially to make hardware interaction easy we introduce robonomics_io crate. This crate implements two kinds of devices: source
- device that intended to read a data and sink
- device that intended to write data. This approach suits the pipelines paradigm well and implemented in Robonomics CLI as io
subcommand.
$ robonomics io
robonomics-io 0.18.0
Run I/O actions using Robonomics Framework.
USAGE:
robonomics io [FLAGS] [OPTIONS] <SUBCOMMAND>
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
read Read information from device
write Write information into device
For example, the sentence that simple read value from Nova SDS011 sensor is followed.
$ robonomics io read sds011
{"timestamp":"1588090281","pm25":0.5,"pm10":1.5}
Is it also possible to combine IO actions to get something useful, like this:
$ robonomics io read sds011 | gz | robonomics io write pubsub my-sensor-data
The sentence above reads JSON values from a sensor, compresses it using gzip, and publishes it into my-sensor-data
topic.
Conclusion
Pipelines for IO actions look like a very powerful tool for extremely high-speed prototyping that could be easily adopted into the code using robonomics-io
crate.
Changelog
- Robonomics PubSub module refactored, from now it's async and thread-safe.
- Introduced Robonomics I/O stream-oriented crate.
- CLI functions moved into dedicated
robonomics-cli
crate. - Added support for Nova SDS011 sensor.
- Added workflow for crates.robonomics.network.
Downloads
Robonomics Node
SHA256 | OS | Link |
---|---|---|
35ebcb2e982d90ec12cb603cc8640c3c7b7e5c8fba644375f8e47046819b43fd |
Ubuntu |
Download |
12a04f79e26827c4f29567c3c76a053ec63707c05c5d1fa70f0d36b54af2ae4b |
MacOS |
Download |
0d4de484d6afaef2ade9cd6629569ceb182f1ac877d072db8fe8fd188a74bde2 |
Windows |
Download |
Subkey
SHA256 | OS | Link |
---|---|---|
ddf6cbcdfddf094e5b57b2f260032e7c5b55701ad30eb09f14136037517b88e1 |
Ubuntu |
Download |
8133de74ffc56adee8f15df588e97834548fb150ae57777623c765eacb38ce44 |
MacOS |
Download |
7847cc6652e36f2ad96ca69a3170ac5df6b7214c910d5dfdd2f8df31f5b707dc |
Windows |
Download |