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_HEADERS
to designate the end of the headers iterated over byaz_http_response_get_next_header()
. - Add new IoT result named
AZ_ERROR_IOT_END_OF_PROPERTIES
to designate the end of the properties iterated over byaz_iot_message_properties_next()
. - Add
AZ_IOT_MESSAGE_PROPERTIES_USER_ID
andAZ_IOT_MESSAGE_PROPERTIES_CREATION_TIME
helper macros. - Add new
az_result
valueAZ_ERROR_DEPENDENCY_NOT_PROVIDED
which is returned by the HTTP adapter.
Breaking Changes
- Rename
az_iot_hub_client_properties
toaz_iot_message_properties
and move it fromaz_iot_hub_client.h
toaz_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_span
parameters. - Remove
az_credential_client_secret
structure, 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_time
moved to second parameter.az_iot_provisioning_client_init()
parameterglobal_device_endpoint
renamed toglobal_device_hostname
.az_iot_provisioning_client_query_status_get_publish_topic()
now accepts theoperation_id
from theregister_response
as the second parameter instead of the wholeaz_iot_provisioning_client_register_response
struct.- Renamed the macro
AZ_SPAN_NULL
toAZ_SPAN_EMPTY
. - Renamed the
az_result
valueAZ_ERROR_INSUFFICIENT_SPAN_SIZE
toAZ_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
NULL
pointers toaz_context
APIs and update documentation. - Removed
AZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_DUPLICATE
andAZ_HUB_CLIENT_DEFAULT_MQTT_TELEMETRY_RETAIN
named 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.