What is the Azure SDK for Go?
Learn how the Azure SDK for Go can help you create and manage Azure resources.
Introducing the management and client libraries
The Azure SDK for Go provides several libraries (grouped into management and client) that allow your Go code to communicate with Azure services. Both the management and client libraries are designed to work with both local and cloud environments.
Due to the adoption of generics, the Azure SDK for Go is compatible with Go 1.18 and later. Moving forward, the Azure SDK for Go will support the two most recent major releases. For a list of all Go releases and to see how to update to a specific version, see Go Release History.
You'll sometimes see the management libraries referred to as the "management plane" and the client libraries referred to as the "data plane". The key difference between the management plane and the data plane can best be explained as follows:
- The management plane is used to manage resources in your Azure subscription.
- The data plane is used to interact with Azure resources in your subscription.
Example: You want to create an Azure Storage Account in your subscription. You'll use the management plane to create the account. And the data plane to interact with the account by reading and writing data to the storage account.
The management and client libraries are built on top of the Azure REST API. This hierarchy allows you to access the functionality of the Azure REST API from the familiar Go lexicon. You can also use the Azure REST API directly from your Go code.
Source code for the management and client libraries is available via a GitHub repository. As an open-source project, contributions from the public are welcome!
Current version of the management and client libraries shares the common cloud patterns implemented in the Azure core library. These patterns include authentication protocols, logging, tracing, transport protocols, buffered responses, and retries.
The Azure SDK for Go is composed of many individual Go libraries that relate to specific Azure services. For the list of client and management libraries, see the Go section of the Azure SDK Releases page.