Expanded README.md
## Introduction
Microsoft Azure expose its technologies via REST API. These APIs are easily consumable from any language (good) but are weakly typed. With this library and its related [crate](https://crates.io/crates/azure_sdk_for_rust/) you can exploit the power of Microsoft Azure from Rust in a idiomatic way.
+This crate relies heavily on the excellent crate called [Hyper](https://github.com/hyperium/hyper). As of this library version [0.4.0](https://github.com/MindFlavor/AzureSDKForRust/releases/tag/0.4.0) all the methods are future-aware. That is, I'm using the latest Hyper code.
+
+Rust, however, still requires you to Box every future returned by a method. The alternative is to use the ```impl Trait``` feature which is nightly-only. Since I've used it everywhere this library will require a nightly Rust compiler until the ```impl Trait``` makes its way to the stable channel. Also since I'm using an unstable feature these is a very good chance of this code to break in the future.
+
> **NOTE:** This repository is under heavy development and
is likely to break over time. The current releases will probabily contain bugs. As usual open issues if you find any.
## Disclaimer
-Although I am a Microsoft employee, this is not a Microsoft endorsed project. It's simply a pet project of mine: I love Rust (who doesn't? :smirk:) and Microsoft Azure technologies so I thought to close the gap between them. It's also a good project for learning Rust. This library relies heavily on [Hyper](https://github.com/hyperium/hyper). As the time of writing master Hyper does not support Tokio yet: this SDK will than be _blocking_. I plan to switch to futures as soon as possible.
-
-## Run E2E test (in progress)
-```
-export AZURE_STORAGE_ACCOUNT=<account>
-export AZURE_STORAGE_KEY=<key>
-
-export AZURE_SERVICE_BUS_NAMESPACE=<azure_service_bus_namespace>
-export AZURE_EVENT_HUB_NAME=<azure_event_hub_name>
-export AZURE_POLICY_NAME=<azure_policy_name>
-export AZURE_POLICY_KEY=<azure policy key>
-
-cargo test --features=test_e2e
-```
+Although I am a Microsoft employee, this is not a Microsoft endorsed project. It's simply a pet project of mine: I love Rust (who doesn't? :smirk:) and Microsoft Azure technologies so I thought to close the gap between them. It's also a good project for learning Rust. This library relies heavily on [Hyper](https://github.com/hyperium/hyper). We use the laters Hyper code sp this library is fully async with Futures and Tokio.
## Example
You can find examples in the [```examples```](https://github.com/MindFlavor/AzureSDKForRust/tree/master/examples) folder. Here is a sample however:
### main.rs
-```rs
+```rust
extern crate azure_sdk_for_rust;
extern crate futures;
@@ -259,5 +250,18 @@ Azure tables entities can be manipulated in batches. The entities are serialized
| Delete collection | [https://docs.microsoft.com/en-us/rest/api/documentdb/delete-a-collection](https://docs.microsoft.com/en-us/rest/api/documentdb/delete-a-collection) |
| Replace collection | [https://docs.microsoft.com/en-us/rest/api/documentdb/replace-a-collection](https://docs.microsoft.com/en-us/rest/api/documentdb/replace-a-collection) |
+## Run E2E test (in progress)
+```bash
+export AZURE_STORAGE_ACCOUNT=<account>
+export AZURE_STORAGE_KEY=<key>
+
+export AZURE_SERVICE_BUS_NAMESPACE=<azure_service_bus_namespace>
+export AZURE_EVENT_HUB_NAME=<azure_event_hub_name>
+export AZURE_POLICY_NAME=<azure_policy_name>
+export AZURE_POLICY_KEY=<azure policy key>
+
+cargo test --features=test_e2e
+```
+
## License
This project is published under [Apache license, version 2.0](LICENSE).
