All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bump MSRV to 1.78.0.
- Send purge device properties when
session_present
is fault #390
- Generate the certificate using
rcgen
fromrustls
. #384
- Update the Dynamic Introspection to support adding or removing interfaces from a MessageHub Node #330
- Implement the retention stored for the
SqliteStore
and the volatile with an in memory structure. #363
- Use Empty type rather than Node to detach a Node #340.
- Handle the new return type of the Attach rpc,
MessageHubEvent
, which can either be an error or an Astarte message #362 - Retrieve the Node ID information from the grpc metadata also for the Attach rpc #372.
- Improve the rendering of the documentation on docs.rs, showing all the features and which one needs to be activated for a specific item.
- Derive
Clone
for the MQTTCredential
enum #369
- Purge property deletes only the server property #342
- Correct the interfaces iterator logic to send the correct device introspection #334
- Introduce Node ID into gRPC metadata.
- Add one or more interfaces at once with
extend_interfaces
#293 - Add a method
unset
to unset a property #296 - Return values for the
DynamicIntrospection
to check if/which interface where added/removed #326
- Rename the enum
Aggregation
intoValue
#296 - Move the
AstarteType::Unset
to theValue::Unset
for the astarte event #296 - Separate the
AstarteDeviceSdk
intoDeviceClient
andDeviceConnection
#311
- Delete all interface's properties, using the correct mapping, when an interface is removed #313
- Handle Unset from gRPC correctly
- Add semver-check for release
- Property reliability as Unique
MqttConfig
now receivesInto<String>
instead of&str
- Bump MSRV to 1.72.0.
- Expose the MQTT connection timeout option.
- Handle MQTT connection errors by trying to reconnect.
- Make the reconnection attempt wait with an exponential back-off.
- Trait
PropAccess
to access the stored properties from theAstarteDeviceSdk
. - Trait
FromEvent
to convert a generic object aggregate into a Rust struct. - Implementation of the connection over GRPC to the message hub.
- Return a channel for the events when creating a device SDK.
- Make handle event loop block to handle the events.
- Create a shareable struct (
Arc
) of theAstarteDeviceSdk
to not clone the device id and realm. - Make the
DynError
trait bound shareable across threads. - Added ownership field to the
StoredProp
struct. - The
PropertyStore::store_prop
now receives theStoredProp
struct. - Improve the errors with more contexts.
- Remove the deprecated and unused Errors.
- Pass
AsRef<Path>
for paths instead of&str
.
- Allow escaped character in the
Interface
description and documentation.
- Check if an interface exists and the type is the same of the value passed/received when sending or receiving data from Astarte.
- Unset of property send empty buffer instead of document with null value.
- Deserialize mixed integer BSON arrays from Astarte to the type specified in the interface (longinteger and integer)
- Added a warning to the
AstarteDeviceSdk::get_property
method to use thePropAccess
trait instead
- Support for different case conventions on
AstarteAggregate
derive macro (#126). - Add support to store properties in volatile memory using
MemoryStore
if no database is provided. - Make
AstarteDeviceSdk
generic over the storage type. - Provide type aliases for
AstarteDeviceSdk
withMemoryStore
andSqliteStore
.
- Expose
pairing::PairingError
to public visibility. - Bump
MSRV
to 1.66.1. - The
AstartDeviceSdk
now requires an ownedAstarteOptions
instance. - Rename the main error in
Error
and give the other errors more specific names. - Mark all errors as
#[non_exhaustive]
. - Renamed the
AstarteSqliteDatabase
intoSqliteStore
. - Added a new
AstarteType
for a genericEmptyArray
.
- Solve a panic when deserializing an empty BSON array.
- Lock version of flate2 to support rust v1.59.
- Initial Astarte Device SDK release.