MegFlow 是一个面向视觉应用的流式计算框架, 目标是简单、高性能、帮助机器学习应用快速落地。

基于 tokio1] 的高效异步运行时调度器

MegFlow

Features

  • 基于 async-std[features=tokio1] 的高效异步运行时调度器
  • 简洁的基于 toml 的建图描述格式
  • 支持静态、动态、共享子图
  • 支持 Rust/Python多语言共存
  • 支持资源管理(多层级跨任务共享)
  • 支持异常处理(异常任务会终止所在静态图)
  • 支持 demux/reorder/transform 等通用函数式组件
  • Python 插件内置有栈协程,不依赖 asyncio
  • 基础测试工具,支持插件沙盒,用于单测插件

HowTo

  • how to build with docker
  • how to build from source
  • how to pack Python .whl
  • how to add my service
  • how to add plugins
  • how to optimize and debug
  • how to contribute
  • FAQ

Current Support List

系统环境 支持情况
Windows 10 WSL ubuntu18.04 ✔️
x86 Ubuntu16.04 有 GPU ✔️
x86 Ubuntu18.04 无 GPU ✔️
x86 macos ✔️
ARM /
Python 版本 支持情况
3.6 ✔️
3.7 ✔️
3.8 ✔️
3.9 /

Built-in Applications

  • 猫猫围栏
  • 电梯电动车报警

Coming Soon

  • 进程级别的节点、子图支持
  • 插件自动化测试部署
  • 调试工具,建图实时预览 profile 工具
  • 性能监控,inspect 工具
  • 更多内置应用和组件

Contact Us

  • Issue: github.com/MegEngine/MegFlow/issues
  • Email: [email protected]
  • Forum: discuss.megengine.org.cn
  • QQ Group: 1029741705
  • OPENI: openi.org.cn/MegEngine

License

Acknowledgement

MegFlow 模型和推理学习了这些项目:

  • MegEngine
  • onnx
  • YOLOX
  • AlignedReID
  • MEMD

MegFlow Python 使用了下列项目:

  • OpenCV
  • numpy
  • loguru
  • scipy
  • redis

MegFlow Rust 使用了以下项目:

  • anyhow
  • async-std
  • clap
  • concurrent-queue
  • ctrlc
  • ctor
  • dyn-clone
  • event-listener
  • ffmpeg-next
  • hyper
  • headers
  • image
  • indexmap
  • lazy-static
  • mime
  • numpy
  • oneshot
  • proc-macro2
  • pretty-env-logger
  • pyo3
  • quote
  • rand
  • rweb
  • serde
  • serde_json
  • stackful
  • syn
  • toml
  • urlencoding
  • warp
Issues

Collection of the latest Issues

hujunjiescu

hujunjiescu

5

除开ImageServer、VideoServer、BytesServer,是否可增加单纯的HttpServer。用户通过自定义的url请求,待计算的输入也可放在请求中

joeshow79

joeshow79

good first issue
4

detail | 详细描述

Hi there, Try to build the docker as refer to the guid, but always failed with the same messages as below, any clue to fix it? Thanks!

Step 7/7 : RUN PATH=$HOME/.cargo/bin:${PATH} && cargo build && cd flow-python && python3 setup.py install --user && cd examples && cargo run --example run_with_plugins -- -p logical_test ---> Running in 9e5d7d0b6e8c Updating crates.io index Updating git repository https://github.com/nbdd0121/stackful.git Updating git repository https://github.com/Easonzero/rust-ffmpeg Updating git repository https://github.com/Easonzero/rust-ffmpeg-sys Downloading crates ...

... ... [Omitt dozens of lines]

Downloaded clang-sys v0.29.3 Downloaded h2 v0.3.3 warning: spurious network error (2 tries remaining): [28] Timeout was reached (download of ndarray v0.15.3 failed to transfer more than 10 bytes in 30s) warning: spurious network error (2 tries remaining): [28] Timeout was reached (failed to download any data for libc v0.2.100 within 30s) error: failed to download from https://crates.io/api/v1/crates/num-integer/0.1.44/download

Caused by: [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 279 was not closed cleanly before end of the underlying stream) The command '/bin/sh -c PATH=$HOME/.cargo/bin:${PATH} && cargo build && cd flow-python && python3 setup.py install --user && cd examples && cargo run --example run_with_plugins -- -p logical_test' returned a non-zero code: 101

Versions

Find the latest versions by id

v0.3.5 - Jan 10, 2022

  • Update megflow_run binary to Python console_scripts
  • Support megflow.__version__
  • Support Bytes Server for user define input
  • Support template config

v0.1.0-beta3 - Nov 12, 2021

What's Changed

  • Add web client (flv.js inside) tutorial to show video result
  • Fix readthedocs link error
  • Add en README
  • Add megflow_quickstart
  • Add Dockerfile.github-release to build py3.6~py3.9 .whl

New Contributors

Full Changelog: https://github.com/MegEngine/MegFlow/compare/v0.1.0-beta2...v0.1.0-beta3

v0.1.0-beta2 - Oct 20, 2021

  • 完成 ARM jetson nano/ 鲲鹏 上的自测
  • 增加 pipeline 级测试功能
  • tutorial 增加串联建图、动态 batching
  • 初步增加 debugger 工具,可以基于 Web UI 完成图优化
  • 优化内部动态图创建、销毁过程
  • 优化打包脚本和 CI
  • 修复 python examples 一些 API 使用错误

What's Changed

Full Changelog: https://github.com/MegEngine/MegFlow/compare/v0.1.0-beta1...v0.1.0-beta2

v0.1.0-beta1 - Sep 19, 2021

  • docker 增加 tuna 源。源码/docker build 受网络影响仍然比较严重,增加 prebuilt release
  • 增加 tutorial01 把分类模型搭建成服务
  • 修改了超多文档,CI 中增加 pylint 和 doc link check

What's Changed

New Contributors

Full Changelog: https://github.com/MegEngine/MegFlow/compare/v0.1.0-beta0...v0.1.0-beta1

v0.1.0-beta0 - Sep 07, 2021

release beta

系统 支持情况
Windows 10 WSL ubuntu18.04 ✔️
x86 Ubuntu16.04 有 GPU ✔️
x86 Ubuntu18.04 无 GPU ✔️
x86 macos ✔️
Python 版本 支持情况
3.6 ✔️
3.7 ✔️
3.8 ✔️

初始化项目

Rust 新增

  • toml 建图
  • 进程内子图共享、异常处理
  • 计算图性能统计接口
  • Image/Video Server
  • Python 共存

Python 新增

  • 3 个 Examples
    • logical_test
    • cat_finder
    • MEMD
  • 1 个 github action、ubuntu 环境 Dockerfile
  • py3.6/3.7/3.8 版本 prebuilt 脚本

New Contributors

Full Changelog: https://github.com/MegEngine/MegFlow/commits/v0.1.0-beta0

Information - Updated Apr 11, 2022

Stars: 315
Forks: 33
Issues: 3

Repositories & Extras

Rust bindings for libinjection

Add libinjection to dependencies of Cargo

Rust bindings for libinjection

Rust bindings for the C++ api of PyTorch

LIghtweight wrapper for pytorch eg libtorch in rust

Rust bindings for the C++ api of PyTorch

Rust leveldb bindings

Almost-complete bindings for leveldb for Rust

Rust leveldb bindings

rust-analyzer is a modular compiler frontend for the Rust language

It also contains some tips & tricks to help you be more productive when using rust-analyzer

rust-analyzer is a modular compiler frontend for the Rust language

Rust-Lightning is a Bitcoin Lightning library written in Rust

lightning, does not handle networking, persistence, or any other I/O

Rust-Lightning is a Bitcoin Lightning library written in Rust

A Rust super-resolution tool, which when given a low resolution image utilises deep learning to...

A Rust super-resolution tool, which when given a low resolution image utilises deep learning to infer the corresponding high resolution image

A Rust super-resolution tool, which when given a low resolution image utilises deep learning to...

rust-dl-webserver

This project provides an example of serving a deep learning model with batched prediction using Rust

rust-dl-webserver

Rust middleware for serving deep learning models with batched prediction

🙌 Easy to tune: simply adjust max_delay and max_batch_size

Rust middleware for serving deep learning models with batched prediction

Rust bindings of Mozilla's DeepSpeech library

Rust bindings of release announcement contains precompiled libraries for various targets

Rust bindings of Mozilla's DeepSpeech library

Rust bindings of Mozilla's DeepSpeech library

Rust bindings of release announcement contains precompiled libraries for various targets

Rust bindings of Mozilla's DeepSpeech library

DRG Save Parser is a rust-based save file parser for Deep Rock Galactic, published

It was made specifically for use in @robertnunn for their work on

DRG Save Parser is a rust-based save file parser for Deep Rock Galactic, published
Facebook Instagram Twitter GitHub Dribbble
Privacy