- Go 1.22 or newer
- protoc compiler
- openssl
make buildmake certs# Without encryption
./bin/telemetry-sink# With TLS and encryption
./bin/telemetry-sink \
--bind=localhost:50051 \
--log-file=telemetry.log \
--buffer-size=1048576 \
--flush-interval=100ms \
--rate-limit=1048576 \
--tls \
--cert=certs/server.crt \
--key=certs/server.key \
--encryption-key='K8x#mP9$vL2@nQ7&hF4!jR5*wE8^tY3'# Without TLS
./bin/sensor-node# With TLS
./bin/sensor-node \
--rate=10 \
--sensor-name=temperature-sensor-1 \
--sink-address=localhost:50051 \
--tls \
--cert=certs/server.crt--bind- address to bind to--log-file- path to log file--buffer-size- buffer size in bytes--flush-interval- buffer flush interval--rate-limit- input flow rate limit in bytes/sec--tls- use TLS--cert- path to TLS certificate--key- path to TLS key--encryption-key- encryption key
--rate- number of messages per second--sensor-name- sensor name--sink-address- telemetry sink address--tls- use TLS--cert- path to TLS certificate--key- path to TLS key
# Without encryption
./bin/telemetry-sink --bind=:50051 --log-file=telemetry.log# With encryption
./bin/telemetry-sink --bind=:50051 --log-file=telemetry.log --encryption-key='K8x#mP9$vL2@nQ7&hF4!jR5*wE8^tY3'# Sensor 1
./bin/sensor-node --rate=5 --sensor-name=temp-sensor-1 --sink-address=localhost:50051# Sensor 2
./bin/sensor-node --rate=3 --sensor-name=humidity-sensor-1 --sink-address=localhost:50051tail -f telemetry.log