/zenoh-as-a-service

Primary LanguagePythonApache License 2.0Apache-2.0

zenoh-as-a-service

This work intends to create some production-ready examples of Zenoh.

Todo in this project

  • Create ABC class
  • Create base class for Zenoh Native
  • Create base class for Zenoh Network
  • Create base Zenoh Native and Net for Pub/Sub
  • Make some examples for Zenoh Pub/Sub
    • Pub/Sub in a single PC
    • Pub/Sub in a network via TCP connection with Zenoh-Net
  • Performance measurements
    • Benchmark of sending image data in a single PC (image & Custom image)
      • Proc. Latency to send image (encode + sending)
      • Proc. Latency to retrieve image (retrieve + decode)
      • Communication Latency to send image data
    • Benchmark of sending image data in a network, between two hosts (image & Custom image)
      • Proc. Latency to send image (encode + sending)
      • Proc. Latency to retrieve image (retrieve + decode)
      • Communication Latency to send image data
      • Bandwidth usage per second
    • Head-to-head comparison for streaming image-typed data:
      • ImageZMQ (ZeroMQ)
        • sending normal images
        • sending images with a custom encoder
      • Redis Pub/Sub
        • sending normal images
        • sending images with a custom encoder
      • Kafka
        • sending normal images
        • sending images with a custom encoder

Environment reccomendation

  • Linux (tested in Ubuntu 18.04 ++)

Pre-requirements

  1. Python version >=3.6 (related issue)
  2. Install python virtual environment: $ python3 -m venv venv
    • Please upgrade the version: $ pip install --uppgrade pip
  3. Install Rust toolchain
    • Install rustop: $ sudo snap install rustup --classic
    • Instal toolchain: $ rustup toolchain install nightly
  4. Install maturin: $ pip install maturin
  5. Core Python library: $ pip install -r requirements.txt