Skip to content

Azure/iot-operations-sdks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azure IoT Operations SDKs

CI-dotnet CI-go CI-Rust CD-Docs E2E-cross-language

Caution

The assets in this repository are currently in Public Preview and have been made available for early access and feedback purposes.

What is Azure IoT Operations?

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.

Why use an SDK?

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

Getting started

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.

  1. Create a codespace from the Azure IoT Operations SDKs repository:

    Open in GitHub Codespaces

  2. Follow the Azure IoT Operations documentation to connect Azure Arc and deploy Azure IoT Operations.

  3. Run the configure-aio script to configure Azure IoT Operations for development:

    ./tools/deployment/configure-aio.sh

Next steps

Components

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 🟡 🟢

Need support?

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.

Contributing

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.

Trademarks

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.