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.register_queue("cam")
        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.run()

node_cam_show.py

from edgehub import Node
import cv2


class CamGetNode(Node):
    
    def before_run(self):
        self.register_queue("cam")
    
    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.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.5.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: edgehub-0.0.5.tar.gz
  • Upload date:
  • Size: 8.7 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.5.tar.gz
Algorithm Hash digest
SHA256 7d0d1f6757349f8effea7b26d8fb0c8924756aae0962c5dcd5a425c9c291afa8
MD5 cb6c950bc815e79ff5c6b7d9b72ed3d0
BLAKE2b-256 882cc4ff9af4467cf6491cebb6066699ea553bc7184a21aab270741584615d3a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: edgehub-0.0.5-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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 e88f0782d75361f89631d6c218cc42e3f4149934069548a5c153e080c4f11c1b
MD5 b5f4a998e484582d8e897af4f77808e9
BLAKE2b-256 989642ba45d6f64dc1d24d12d0cc2de7add7b0fb8515ef83f770974116c3458e

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