Azure SDK for Embedded C (September 2020)
The Azure SDK team is pleased to make available the September 2020 client library release.
Beta
- Azure Core
- Azure IoT
Installation Instructions
To install any of our packages, copy and paste the following commands into a terminal:
git clone https://github.com/Azure/azure-sdk-for-c
git checkout <tag_name>
Feedback
If you have a bug or feature request for one of the libraries, please post an issue to GitHub.
Changelog
Azure Core Changelog
New Features
- Add
az_json_writer_append_json_text()to support appending existing JSON with the JSON writer. - Add support for system properties for IoT Hub messages to
az_iot_common.h. - Add new HTTP result named
AZ_ERROR_HTTP_END_OF_HEADERSto designate the end of the headers iterated over byaz_http_response_get_next_header(). - Add new IoT result named
AZ_ERROR_IOT_END_OF_PROPERTIESto designate the end of the properties iterated over byaz_iot_message_properties_next(). - Add
AZ_IOT_MESSAGE_PROPERTIES_USER_IDandAZ_IOT_MESSAGE_PROPERTIES_CREATION_TIMEhelper macros. - Add new
az_resultvalueAZ_ERROR_DEPENDENCY_NOT_PROVIDEDwhich is returned by the HTTP adapter.
Breaking Changes
- Rename
az_iot_hub_client_propertiestoaz_iot_message_propertiesand move it fromaz_iot_hub_client.htoaz_iot_common.h. - Remove
az_pair, and its usage fromaz_http_request_append_header(),az_http_response_get_next_header(), andaz_iot_message_properties_next()in favor of individual name and valueaz_spanparameters. - Remove
az_credential_client_secretstructure, andaz_credential_client_secret_init()function. - Remove
az_platform_atomic_compare_exchange()from platform. - In
az_result.h, renameaz_failed()toaz_result_failed()andaz_succeeded()toaz_result_succeeded(). az_iot_is_success_status()renamed toaz_iot_status_succeeded().az_iot_is_retriable_status()renamed toaz_iot_status_retriable().az_iot_retry_calc_delay()renamed toaz_iot_calculate_retry_delay().az_iot_hub_client_sas_get_password()parametertoken_expiration_epoch_timemoved to second parameter.az_iot_provisioning_client_init()parameterglobal_device_endpointrenamed toglobal_device_hostname.az_iot_provisioning_client_query_status_get_publish_topic()now accepts theoperation_idfrom theregister_responseas the second parameter instead of the wholeaz_iot_provisioning_client_register_responsestruct.- Renamed the macro
AZ_SPAN_NULLtoAZ_SPAN_EMPTY. - Renamed the
az_resultvalueAZ_ERROR_INSUFFICIENT_SPAN_SIZEtoAZ_ERROR_NOT_ENOUGH_SPACE. - Removed the helper macros
AZ_RETURN_IF_FAILED()andAZ_RETURN_IF_NOT_ENOUGH_SIZE()fromaz_result.h. - Behavioral change to disallow passing
NULLpointers toaz_contextAPIs and update documentation. - Removed
AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_DUPLICATEandAZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_RETAINnamed constants fromaz_iot_hub_client.h.
Bug Fixes
- Fix the strict-aliasing issue in
az_span_dtoa()andaz_span_atod(). - Fix the SDK warnings for the release configurations.
- Do not use a shared static scratch buffer for JSON token parsing. Instead use stack space.
Other Changes and Improvements
- Refactor and update IoT samples.
- Optimize the code size for URL encoding and setting HTTP query parameters.
- Add support for building the SDK on ARM (Cortex M4) and adding it to CI.
Latest Releases
View all the latest versions of C packages here.