Skip to main content

A flexible and efficient cross process distributed edge computing engine.

Project description

edgehub

一款灵活高效的,跨进程分布式边缘计算引擎。

安装方式

pip3 install edgehub

使用示例

示例1

该示例由一个Master节点和两个Node节点组成。

Master负责消息传递,不负责运算。

两个Node,一个Node节点负责实时读入摄像头视频流,另一个Node节点负责展示前一个Node读到的视频流。

本示例需要安装python-opencv: pip3 install opencv-python

master.py

from edgehub import Master

if __name__ == '__main__':
    SERVER_IP = '127.0.0.1'
    SERVER_PROT = 9010
    m = Master("master", address=(SERVER_IP, SERVER_PROT), authkey=b'z', log_level="DEBUG")
    
    server = m.get_server()
    server.serve_forever()

node_cam_read.py

from edgehub import Node
import cv2


class CameraNode(Node):
    stream = Node
    camera_url = 1

    def before_run(self):
        self.stream = cv2.VideoCapture(self.camera_url)

    def on_queue_process(self, queue_name):
        (grabbed, frame) = self.stream.read()
        self.put(frame, queue_name)


if __name__ == '__main__':
    SERVER_IP = '127.0.0.1'
    SERVER_PROT = 9010
    n = CameraNode("cap_put", address=(SERVER_IP, SERVER_PROT), authkey=b'z')
    n.register_queue("cam")
    n.run()

node_cam_show.py

from edgehub import Node
import cv2


class CamGetNode(Node):
    def on_queue_process(self, queue_name):
        item = self.get(queue_name)
        cv2.imshow("queue_name", item)
        key = cv2.waitKey(1) & 0xFF
        if key == ord("q"):
            raise StopIteration()

        # 为了确保队列不积压 导致延迟递增  每次执行完后清空当前队列,这样每次处理时就会取到最新图片
        self.clear(queue_name)


if __name__ == '__main__':
    SERVER_IP = '127.0.0.1'
    SERVER_PROT = 9010
    n = CamGetNode(name="cam_get", address=(SERVER_IP, SERVER_PROT), authkey=b'z')
    n.register_queue("cam")
    n.run()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edgehub-0.0.3.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

edgehub-0.0.3-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file edgehub-0.0.3.tar.gz.

File metadata

  • Download URL: edgehub-0.0.3.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.23.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.4

File hashes

Hashes for edgehub-0.0.3.tar.gz
Algorithm Hash digest
SHA256 e918b41d1f1a63dca5de43a2f1f268c3eaf779ad7ae4e5ba15f12ecb48a39a26
MD5 7560bec80fe7649ad78acd29ffb3fd72
BLAKE2b-256 e36b7d138813b993117acfc2b885c7fef4acbadd789b792c2860601d273ebd39

See more details on using hashes here.

File details

Details for the file edgehub-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: edgehub-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.0 requests/2.23.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.4

File hashes

Hashes for edgehub-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 aeb433a44b8ce5f2f20df3d0ca663ca4e297372788e02ed0cda7896c82712c67
MD5 b1e2ef8b798608ac3d1c10b4cc35f7ff
BLAKE2b-256 7bd81b872c82924abded4dabc52e32c49f4e14cbb4178f694d6d2fbf24b73584

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page