Skip to content

THE framework to make IoT software developers happy again!

License

Notifications You must be signed in to change notification settings

rachelzhang0922/shifu

 
 

Repository files navigation

中文 | English

PRs Welcome Go Report Card codecov Build Status golangci-lint

Shifu

Shifu is a Kubernetes native framework designed to abstract out the complexity of interacting with IoT devices. Shifu aims to achieve TRUE plug-and-play IoT device virtualization, management, control, and automation.

Why Shifu

Shifu makes it extremely simple to manage and control your IoT devices via deviceShifu, a digital twin for your device. When you connect an IoT device, Shifu will recognize it and start a deviceShifu of the device as a Kubernetes Pod.

deviceShifu provides you with a high-level abstraction to interact with your device. By implementing the interface of the deviceShifu, your IoT device can achieve everything it is designed for, and much more! For example, you can have your device actively push its telemetry to any endpoint of your choice.

Start Shifu

Installation

Shifu provides shifu_install.yml. If you have started a Kubernetes cluster, use the command kubectl aply to install Shifu in your cluster:

cd shifu
kubectl apply -f pkg/k8s/crd/install/shifu_install.yml

Demo

If you are not familiar with Kubernetes, we provide Shifu Demo, which will intuitively show how Shifu creates and manages digital twins of any physical device in the real world.

Documentation

See documentation on https://shifu.run/docs/.

Look into Shifu

Check the Markdown files in docs/ to learn about the design and development guides of Shifu.

Shifu's Milestone

  • features supported
    • Telemetry collection: Shifu supports the collection of telemetry from devices on a regular basis. What telemetry to collect, how to collect, how frequently to collect are all customizable in one single configuration file.
    • Integration with Kubernetes with CRD: Shifu allows any type or form of configuration for your devices.
  • features not yet supported
By Protocols Features
Q1 2022 HTTP
command line driver
telemetry
command proxy
CRD integration
Q2 2022 MQTT
TCP Socket
RTSP
Siemens S7
OPC UA
state machine
Q3 2022 ONVIF Shifu Cloud
Q4 2022 gRPC abstraction
shifuController
shifud
simulation

If you want more features and protocols supported, please open an issue!

Shifu's vision

Make developers and operators happy again

Developers and operators should focus entirely on using their creativity to make huge impacts, rather than fixing infrastructure and reinventing the wheel on a daily basis. As a developer and an operator, Shifu knows your pain!!! Shifu wants to take out all the underlying mess, and make us developers and operators happy again!

Software-Defined World

If every IoT device has a deviceShifu with it, we can leverage software to manage our surroundings, and make the whole world software defined. In a software-defined world, everything is intelligent, and the world around you will automatically change itself to serve your needs -- after all, all the technology we built is designed to serve human beings.

Community

Contribute

Welcome to open an issue or create a PR!

Contact Us

Stargazers over time

Stargazers over time

About

THE framework to make IoT software developers happy again!

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 89.7%
  • Makefile 7.6%
  • Dockerfile 1.7%
  • Shell 1.0%