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.2.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: edgehub-0.0.2.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.2.tar.gz
Algorithm Hash digest
SHA256 3b007926296f0d708c3ed310fb4dd81807b70bd2db442729e390b7091608132c
MD5 f3a0a316a4e6e07763c561c83ab07ca8
BLAKE2b-256 2dca38892a71ca68e97c53d7553aa20e8aac874b5986512dcdeed5344cc22ad8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: edgehub-0.0.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8d718b5ed31fafbb18a2db0877df765b07406a0fe51758a53af22ed068562688
MD5 b009a606a9d70623cff0804c71b615df
BLAKE2b-256 3c9742e4d1908083cc1ccbb44277fde35d9150ac1b196128c06ae1b16f793e83

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