Skip to content

dsietz/datadot

Repository files navigation

DataDot

License Coverage Status Docs.rs

Linux: Build Status Windows: Build status


Looking for a cluster of syncronized bots to do your work? Just spin up a colony of DataDots.

A Data Dot is a micro executable that acts on its specified data point that is defined at start up. Once started, a DataDot ...

  • Interacts with the user on the command line
  • Collaboratively works together with other DataDots by speaking and listening
  • Learns about its own datapoint by continuously discovering and analyzing the DataDots in its colony

Reference Material

RUNNING

testing

[machine-name sadp]$ cargo test -- --nocapture

usage

[machine-name datadot]$ ./datadot --help
DataDot

USAGE:
    datadot [OPTIONS] --bind <bind> --data <data>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -b, --bind <bind>             The multicast address to bind to (e.g.: 224.0.1.255
    -d, --data <data>             The data that the dot represents
    -x, --plg_dir <plugin_dir>    [Optional] The path to the directory where the plugins are located.
    -p, --port <port>             [Optional] The port number to use for multicasting, (default 7645).

starting datadot

[machine-name datadot]$ ./datadot -d "Hello" -b 224.0.0.1 -x "./plugins"
dot:listener: joined: 224.0.0.1:7645
dot:listener: is ready

braodcast a message

get::hi
dot:listener: received request: hi from: 10.172.12.144:54260

calling a plugin function (e.g.: plugin uses core::)

core::datapoint
datapoint is Hello
"processed..."
core::mask
"processed..."
core::datapoint
datapoint is secret
"processed..."

stopping datadot

stop
dot:listener: received request: stop from: 10.172.12.144:35821
dot:listener: stopped!
dropping plugins...
Bye!
NOTE

Releases

No releases published

Packages

No packages published

Languages