You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: FAQ.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
1
# Frequently Asked Questions
2
2
3
-
## When will the crates be published to crates.io?
3
+
## Why is it unofficial?
4
4
5
-
We want them to be published soon too! [Milestones](https://github.com/Azure/azure-sdk-for-rust/milestones) have been created to help figure out issues remaining.
5
+
This is an *unofficial* Azure SDK because it is not yet supported by Azure Support or the Azure SDK team. It has been built primarily by volunteers on their own time. For more information, see the [project history](HISTORY.md).
Copy file name to clipboardExpand all lines: README.md
+17-19Lines changed: 17 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,33 +1,31 @@
1
-
# \[Unofficial\]Azure SDK for Rust
1
+
# Azure SDK for Rust
2
2
3
-
This repository is for the development of the *unofficial* Azure SDK for Rust. It is *unofficial* because it is not yet supported by Azure Support or the Azure SDK team. It has been built primarily by volunteers on their own time. For more information, see the [project history](HISTORY.md) or [FAQs](FAQ.md):
4
-
- When will the crates be published to crates.io?
5
-
- How do we build a case for making it official?
3
+
This repository is for the development of the [unofficial](https://github.com/Azure/azure-sdk-for-rust/blob/main/FAQ.md#why-is-it-unofficial) Azure SDK for Rust.
6
4
7
5
## Crates
8
6
7
+
[All Azure SDK for Rust crates](https://crates.io/teams/github:azure:azure-sdk-publish-rust) are published on crates.io.
More than 200 Azure service crates are available in [services](services). They are generated from the [Azure REST API Specifications](https://github.com/Azure/azure-rest-api-specs).
22
+
Azure service crates generated from [Azure REST API Specifications](https://github.com/Azure/azure-rest-api-specs) are available in [services](services).
23
23
24
24
## Status
25
25
26
-
🚨🚨🚨**WARNING**: This project is currently under very active development.🚨🚨🚨
27
-
28
-
This projects' crates have yet to released to crates.io so in order to use them you will need to specify them as git dependencies. You should be aware that large, breaking changes can happen at any time, and thus it's not yet recommended to use these crates in any serious capacity yet.
26
+
🚨 WARNING 🚨: This project is under active development. Be aware that large breaking changes will happen before 1.0 is reached.
29
27
30
-
Additionally, this project is the logical successor to the previous Azure SDK crates found under [github.com/MindFlavor/AzureSDKForRust](https://github.com/MindFlavor/AzureSDKForRust). The crates have been renamed, so those older crates should be considered fully deprecated.
28
+
This project is the successor to the `azure_sdk*`crates from [MindFlavor/AzureSDKForRust](https://github.com/MindFlavor/AzureSDKForRust). The crates have been renamed, so those older crates should be considered fully deprecated. See [history](HISTORY.md) for more details.
Copy file name to clipboardExpand all lines: services/README.md
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Rust crates for accessing [Azure services](https://azure.microsoft.com/services/). These crates are client libraries generated by [AutoRust](autorust) using the web service [specifications](https://github.com/Azure/azure-rest-api-specs/tree/master/specification). The specifications are divided into two categories - [control plane and data plane](https://docs.microsoft.com/azure/azure-resource-manager/management/control-plane-and-data-plane). "You use the control plane to manage resources in your subscription. You use the data plane to use capabilities exposed by your instance of a resource type."
4
4
5
-
When this document was last updated, there were 185[control plane crates](mgmt) and 29[data plane crates](svc).
5
+
When this document was last updated, there were 202[control plane crates](mgmt)with 1437 [tags](api-versions.md)and 38[data plane crates](svc) with 139 [tags](api-versions.md).
6
6
7
7
## Control Plane Crates
8
8
The control plane crates are named `azure_mgmt_${servicename}`, such as `azure_mgmt_storage`.
@@ -39,5 +39,3 @@ azure_core = "0.1"
39
39
azure_identity = "0.1"
40
40
azure_svc_batch = "0.1"
41
41
```
42
-
43
-
Each crate may support several [API versions](api-versions.md).
Each service may have multiple API versions. Each API version has a set of OpenAPI 2.0 documents, listed under a `Tag` in a [readme.md](https://github.com/Azure/azure-rest-api-specs/blob/master/specification/storage/resource-manager/readme.md) file in a `Configuration` section. Sometimes there are multiple `Tag`s for the same API version. For example, [Tag: package-2018-07](https://github.com/Azure/azure-rest-api-specs/blob/master/specification/storage/resource-manager/readme.md#tag-package-2018-07) and [Tag: package-2018-07-only](https://github.com/Azure/azure-rest-api-specs/blob/master/specification/storage/resource-manager/readme.md#tag-package-2018-07-only). Rust code is generated for each tag and organized as a crate feature. The first tag without `-preview` is selected as the default feature:
3
+
A `Configuration` section `Tag` in a `readme.md` represents a set of operations for an Azure service for generating a client SDK. Ideally, there is a single tag representing an API version for a service.
4
4
5
+
Unfortunately, some services use [multiple API versions](https://github.com/Azure/azure-sdk-for-rust/issues/563) in their tags. In this case, different service operations will use different API versions of the same service.
6
+
7
+
Using the `azure_mgmt_storage` crate as an example. It is generated from the [specification/storage/resource-manager/readme.md](https://github.com/Azure/azure-rest-api-specs/blob/master/specification/storage/resource-manager/readme.md). In its [Cargo.toml](https://github.com/Azure/azure-sdk-for-rust/blob/main/services/mgmt/storage/Cargo.toml), you can see the list of `features`. A crate feature is generated for each tag. The first tag without `-preview` is selected as the default. In its [lib.rs](https://github.com/Azure/azure-sdk-for-rust/blob/main/services/mgmt/storage/src/lib.rs), you can see that a module is generated for each tag as well.
8
+
9
+
Here is an example `Cargo.toml`.
5
10
```toml
6
11
[features]
7
12
default = ["package-2019-06"]
@@ -12,38 +17,30 @@ default = ["package-2019-06"]
12
17
"package-2018-07" = []
13
18
"package-2018-07-only" = []
14
19
"package-2018-03" = []
15
-
"package-2018-02" = []
16
-
"package-2017-10" = []
17
-
"package-2017-06" = []
18
-
"package-2016-12" = []
19
-
"package-2016-05" = []
20
-
"package-2016-01" = []
21
-
"package-2015-06" = []
22
-
"package-2015-05-preview" = []
23
20
```
24
21
25
-
The default feature will be used when this dependency is specified:
22
+
The default tag will be used when this dependency is specified as:
azure_mgmt_storage = { version = "0.1", default-features = false, features = ["package-2020-08-preview"] }
35
32
```
36
33
37
34
A few use cases require using more than tag. This can be accomplished a couple of ways. Specify the feature `no-default-version` and the other tags you wish to use.
azure_mgmt_storage = { version = "0.1", features = ["no-default-version", "package-2019-06", "package-2018-02"] }
42
39
```
43
40
44
41
Or it can be done by [renaming the dependencies](https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml):
0 commit comments