Releases: MindFlavor/AzureSDKForRust
Removed reqwest dependency from core crate
- Removed reqwest dependency from core crate (Issue #212).
- Upgraded AAD crate to use
OAuth2version3.0.0-alpha.7.
Complete rewrite of CosmosDB crate
Main goals
- Support for builder pattern everywhere.
- Support for bleeding edge Azure CosmosDB REST APIs (version
2018-12-31). This deprecates non-partitioned collections. The crate reflects that (see https://docs.microsoft.com/en-us/azure/cosmos-db/migrate-containers-partitioned-to-nonpartitioned). - Compliance with the other Azure SDK crates.
- Better use of recent Rust features.
- More streamlined code. Each REST method has:
RequestandResponse. TheClientwill create a type safeRequestthat has anexecutefunction, callable only when all the mandatory fields have been filled. Some functions also export astreamfunction that takes care of theContinuationTokenfor you. - Less fragmented code. Now it should be easier to find the relevant struct/trait in the repo.
- Better encapsulation (there is still work to do here, many items can go from
pubtopub(crate)). - Removed all
Exttraits (those were really ugly 🤦♂️). - Ability to create a
DatabaseClientand aCollectionClientthat embed the database name and collection name. These structs are light but help you avoid repeating the names over and over (most code uses a single collection anyway). - Make implementing the missing APIs easier.
Issues closed
- #181: Make CosmosDB API more similar to the rest of the crates.
- #153: Cosmos DB: fix replace_collection().
Drawbacks
- No backward compatibility.
- Many functions are more verbose (but waaay easier to understand and safer to use).
Limitations
- The functions always return
AzureErrorin case of error. WhileAzureErroris ergonomic to use it does not capture the nuances of every error. A more thoughtful approach is warranted.
API changes to make Table Storage API easier to use
Support for etag in storage tables
table_0.30.2 version table_0.30.2
Fixed table regression after PR 173
table_0.30.1 updated README refs
std::future compatibility
This release migrates to the std::future version of hyper thus enabling the use of async/await syntax.
The code should be backward compatible (given the new Future, that is). You can probably face lifetime issues (especially in the Cosmos SDK) that can be overcome avoiding references altogether.
I will probably streamline the Cosmos crate in the near future to make it more similar to the other ones.
Fixes #170, #169, #168, #167, #166, #165, #164, #163 and #140.
It completes the milestone #2.
AAD 0.21.1
Fixes #155.
0.24.0
- TableService example that lists all the tables. PR #141 by Cameron Taggart.
- Count_blobs example. PR #145 by Cameron Taggart.
- More append blob support. PR #144 by Eero Kelly.
- CosmosDB end to end tests. PR #154 by Andreas.
- Update headers. PR #149 by Eero Kelly.
- Add stream_query_entities. PR #146 -by Cameron Taggart.
As usual, thank you to every contributor!
Conditional header support for PUT block blob
Cosmos 0.23.0
Storage blob 0.23.0
- Conditional header support for PUT block blob by Eero Kelly (PR #138).
Side note
Whenever I create a release containing multiple crates (like this one) I will increment the highest version and use that one for the tag and every updated crate. This could create holes in a crate version history but I think it's fine as long as it helps to find the tag for a specific version.
Fix clippyand China Cosmos DB URI
Fixes
- Fixed China Cosmos DB URI (PR #134 by zimingWu).
- Fixed clippy warnings and errors (PR #136).
- Fixed Storage Account E2E test (PR #136).
Breaking changes
- In Cosmos crate, renamed the function
is_upsertinupsertsince it took a mutable reference of self. - In AAD crate, moved function
from_strfromimpl LoginResponsetoimpl FromStr for LoginResponse(the logic is the same, you just need to have the trait imported).