Caution
The assets in this repository are currently in Public Preview and have been made available for early access and feedback purposes.
Azure IoT Operations is a unified data plane for the edge. It's composed of a set of modular, scalable, and highly available data services that run on Azure Arc-enabled edge Kubernetes clusters. It enables data capture from various different systems and integrates with data modeling applications such as Microsoft Fabric to help organizations deploy the industrial metaverse.
See the Azure IoT Operations Learn documentation to learn more about the product as well as detailed instructions on deployment and configuration.
The Azure IoT Operations SDKs are a suite of tools and libraries across multiple languages designed to aid the development of applications for Azure IoT Operations.
The focus of the SDKs it to assist customers in developing applications by providing the following features:
Feature | Description |
---|---|
Highly available | Provides infrastructure and guidance to build HA into your applications |
Choice of language | The SDKs target multiple languages to support any development environment |
Secure | Uses the latest crypto libraries and protocols |
Zero data loss | Builds on MQTT broker to remove data loss due to application failure |
Low latency | Optimized layering and tight MQTT client coupling minimized overheads |
Integration with IoT Operations services | Libraries provide access to services such as state store |
Simplify complex messaging | Provide support for communication between applications via MQTT5 using an RPC implementation |
Support | The SDKs are maintained and supported by a dedicated team at Microsoft |
Use GitHub Codespaces to try the Azure IoT Operations SDKs on a Kubernetes cluster without installing anything on your local machine.
Tip
For additional platforms and more in-depth setup instruction, refer to the setup documentation.
-
Create a codespace from the Azure IoT Operations SDKs repository:
-
Follow the Azure IoT Operations documentation to connect Azure Arc and deploy Azure IoT Operations.
-
Run the
configure-aio
script to configure Azure IoT Operations for development:./tools/deployment/configure-aio.sh
-
Read the documentation on building edge applications using the Azure IoT Operations SDKs
-
Review the API documentation for the SDKs
-
Refer to language directory for instructions on using each SDK:
-
Take a look at the samples and tutorials for an summary of the different samples available across the languages.
The following tables outline the current components, along with the associated language support.
Tip
Additional information on the SDK components is available in our component documentation.
State | Support |
---|---|
🟢 Complete | Feature is released and actively supported by the team. |
🟡 In progress | Under development, no support provided. |
🟠 Planned | Work is planned in the near future. |
Feature | Description | .NET | Go | Rust |
---|---|---|---|---|
Session client | Initialize the MQTT client and connect to MQTT broker. Handles all authentication and reconnection. | 🟢 | 🟢 | 🟢 |
Command client | Command (invoker/executor) client build on top of MQTT5 | 🟢 | 🟢 | 🟢 |
Telemetry client | Telemetry (sender/receiver) client build on top of MQTT5 | 🟢 | 🟢 | 🟢 |
Schema registry client | Interact with the schema registry to fetch and store asset schemas | 🟢 | 🟢 | 🟢 |
State store client | Client that enables interaction with the state store and provides the ability to get/set/delete and watch a key | 🟢 | 🟢 | 🟢 |
Lease lock client | Create a lock for a shared resource | 🟢 | 🟢 | 🟢 |
Azure Device Registry client | Device endpoint and asset configuration and asset discovery | 🟢 | 🟢 | |
Connector SDK | SDK to simplify developing connectors | 🟡 | 🟢 |
Refer to SUPPORT.md for guidance on reporting bugs, requesting features and getting assistance.
For security related issues, please follow the guidance outlined in SECURITY.md.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.