Azure / azure-sdk-for-go

This repository is for active development of the Azure SDK for Go. For consumers of the SDK we recommend visiting our public developer docs at:
https://docs.microsoft.com/azure/developer/go/
MIT License
1.65k stars 846 forks source link

Please add an azure-iot-sdk-go client iothub SDK #8399

Closed shaunco closed 7 months ago

shaunco commented 4 years ago

Why is there no azure-iot-sdk for go? There are ones for C, Python, Node.js, Java, and .NET, but no go. On the management side there is this project (azure-sdk-for-go), but it doesn't do any of the client side things you'd want on a edge device talking to IoT Hub. Sure, I can cgo the azure-iot-sdk-c SDK, but that introduces a whole host of headaches for the average go developer, especially the part where go's cross compiling from any platform to any platform is disabled when you use cgo to bring in C libraries.

There are a handful of projects that have started to implement IoT Hub support, the most complete being https://github.com/amenzhinsky/iothub ... which is mostly complete (D2C, C2D, twin state, and direct messages), but only over MQTT with private keys or X.509, and just recently added MQTT over WebSockets. No AMQP, no HTTP, and no retry logic.

The one that I'm really wishing for at the moment is a DPS client SDK for go, but it looks like I'll end up writing one.

ArcturusZhang commented 4 years ago

Hi @shaunco thanks for this issue. This repo only contains those SDK that are generated from their corresponding swaggers (you can find the swaggers here) Currently we do have a package of iothub here and here

As for the SDK you mentioned to have other languages but not golang, could you provide a link to one of the SDKs? While I think they should be data-plane SDKs without a swagger. This kind of SDK is manually written by the corresponding service team, not auto-generated as the SDKs in this repo.

shaunco commented 4 years ago

The two iothub packages you pointed to are for iothub management, not iothub edge devices (MQTT/AMQP, D2C, C2D, twin state, direct messages, etc). Same as azure-iot-sdk-c, but for go.

I originally asked this question in the azure-iot-sdk-c project, as azure-iot-sdks points to the c, python, node.js, java, and .net projects, and the azure-iot-sdk-c folks directed me here.

ArcturusZhang commented 4 years ago

Well, but this repo will only receive the auto-generated go SDK from the corresponding swaggers, therefore you cannot find those data-plane SDKs here...

Usually these kind of SDKs are manually written from a specific SDK team of that service, therefore could you please confirm this with them (whether the SDK is hand-written or not, and whether there will be golang support)? This question is out of this repo's scope now.

shaunco commented 4 years ago

As I stated previously, I originally asked this question in the azure-iot-sdk-c project (which is the SDK of the team of that service). They directed me here, see: azure-iot-sdk-c issue #1512

Perhaps @ericwol-msft and @ArcturusZhang can work out, inside of MSFT, who should make an Azure IoT Hub golang SDK?

ArcturusZhang commented 4 years ago

Hi @jhendrixMSFT is the iot-hub SDK in the plan of track 2? Since it should be a data-plane SDK

jhendrixMSFT commented 4 years ago

I'm following up on this however I can't commit to anything at present.

mms- commented 4 years ago

It is quite strange that Go lang support for IoT device client SDK is not higher priority. Given that it easily compiles to any architecture it should be near the top. Until .Net does actual AOT Go makes a lot of sense, lot more than .Net for IoT which does not support as many CPU architectures.

This lack of support is causing us to implement less Azure services than we would. We are rolling our own server side solutions and connecting with Go, as it is faster than integrating with client side SDKs that are available.

asergaz commented 4 years ago

Please vote for this feature here: "Offer Go as a language for Azure IoT SDK" https://feedback.azure.com/forums/321918-azure-iot-hub-dps-sdks/suggestions/32822650-go-sdk-for-azure-iot

tomabg commented 3 years ago

is thiss issue in work?

dmoeff commented 2 years ago

Any update on this feature request?

asergaz commented 2 years ago

The feature is here and you can vote for it: https://feedback.azure.com/d365community/idea/4c9766ab-f924-ec11-b6e6-000d3a4f0da0

drdamour commented 2 years ago

correct me if i'm wrong, but the effort here is to create swaggers for the data-plan services of iothub (documented at https://docs.microsoft.com/en-us/rest/api/iothub/service/devices) similar to what just got added to iotcentral at https://github.com/Azure/azure-rest-api-specs/tree/main/specification/iotcentral/data-plane

can anyone provide these, or does it have to be from MS?

jhendrixMSFT commented 2 years ago

CC @sandeep-sen

EliiseS commented 1 year ago

Any updates on this?

kaancfidan commented 1 year ago

I would expect Go to be a higher priority for IoT given it's small footprint.

mccolljr commented 9 months ago

It has been almost a year since the last comment, but I want to chime in and indicate that there is still interest in Go support for the Azure IoT data plane APIs.

rjtokenring commented 8 months ago

Hi, I'd like to add also my vote to this issue. It would be a very good addition!

github-actions[bot] commented 7 months ago

Hi @shaunco, we deeply appreciate your input into this project. Regrettably, this issue has remained inactive for over 2 years, leading us to the decision to close it. We've implemented this policy to maintain the relevance of our issue queue and facilitate easier navigation for new contributors. If you still believe this topic requires attention, please feel free to create a new issue, referencing this one. Thank you for your understanding and ongoing support.