spin-plugin-kube
spin-trigger-mqtt
spin-plugin-kube | spin-trigger-mqtt | |
---|---|---|
2 | 2 | |
35 | 20 | |
- | - | |
8.1 | 7.2 | |
3 months ago | 27 days ago | |
Go | Rust | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
spin-plugin-kube
-
Measuring Crowd Engagement with an MQTT-based IoT App
With our Spin application completed, we can now deploy it to Kubernetes by configuring the cluster with SpinKube. SpinKube is an open source project that enables running Spin applications on Kubernetes alongside containers. The project consists of 4 sub-projects, the Spin Operator, the spin kube plugin, the runtime class manager, and the Spin containerd shim. The latter is what contains the Spin runtime and executes the Spin applications on your nodes. The v0.16.0 release of the shim added support for the MQTT trigger, enabling us to run our application on SpinKube! You can use one of SpinKube’s installation guides to install SpinKube on your distribution of Kubernetes.
-
SpinKube: Orchestrating light, fast and efficient WebAssembly (Wasm) workloads in Kubernetes (k8s)
Spin Kube Plugin - a Spin plugin for interacting with k8s
spin-trigger-mqtt
-
Exploring the MQTT Trigger for Spin: Simplifying Real-time Communication
The MQTT trigger is a feature of the Spin framework that allows a Spin application to subscribe to a specific MQTT address. Individual components within that application can then be configured to monitor particular topics at the address. When messages are detected on these topics, the corresponding component functions are triggered.
-
Measuring Crowd Engagement with an MQTT-based IoT App
Let’s start by looking at the implementation of our first component, which is triggered by messages published to an MQTT topic and persists the data in a SQLite database. It is implemented in Rust and was scaffolded using the MQTT template. In the Spin application manifest (spin.toml), we are using a Spin application variable to dynamically configure the address for the MQTT broker. This will enable us to set Spin to connect to a broker at "mqtt://localhost:1883" when running locally and at "mqtt://emqx.default.svc.cluster.local:1883" when running in SpinKube. We also set the keep alive interval (secs) for connections with the broker and username and password authentication credentials. In this example application, the broker does not require authentication, so the credentials are left empty.
What are some alternatives?
spin-mqtt-booth-volume-app - Sample SpinKube application that uses MQTT and HTTP triggers. Ingests noise data from sensors, persists in SQLite DB, and displays over graphical frontend
runtime-class-manager - A Kubernetes operator to manage Runtime Classes
containerd-shim-spin - A ContainerD shim for running Spin Applications.
spin-operator - Spin Operator is a Kubernetes operator that empowers platform engineers to deploy Spin applications as custom resources to their Kubernetes clusters
kubebuilder - Kubebuilder - SDK for building Kubernetes APIs using CRDs
mosquitto - Eclipse Mosquitto - An open source MQTT broker [Moved to: https://github.com/eclipse-mosquitto/mosquitto]
mqtt.org - The mqtt.org website
spin - Spin is the open source developer tool for building and running serverless applications powered by WebAssembly.