Releases: MindFlavor/AzureSDKForRust
Removed reqwest dependency from core crate
- Removed reqwest dependency from core crate (Issue #212).
- Upgraded AAD crate to use
OAuth2
version3.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:
Request
andResponse
. TheClient
will create a type safeRequest
that has anexecute
function, callable only when all the mandatory fields have been filled. Some functions also export astream
function that takes care of theContinuationToken
for 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
pub
topub(crate)
). - Removed all
Ext
traits (those were really ugly 🤦♂️). - Ability to create a
DatabaseClient
and aCollectionClient
that 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
AzureError
in case of error. WhileAzureError
is 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_upsert
inupsert
since it took a mutable reference of self. - In AAD crate, moved function
from_str
fromimpl LoginResponse
toimpl FromStr for LoginResponse
(the logic is the same, you just need to have the trait imported).