svc-agent 0.21.0

An agent library.
Documentation
# Changelog

## v0.15.0 (February 19, 2021)
### Changes
- Added version to multicasts ([366895a]https://github.com/netology-group/svc-agent-rs/commit/366895ab564d4452a936c439126168dc6aae91f3)

## v0.14.13 (December 3, 2020)
- Make publish_dump public again ([389ef0f]https://github.com/netology-group/svc-agent-rs/commit/389ef0f2b22b0c7e309533709673bdb1851024b3)

## v0.14.12 (November 25, 2020)

### Fixes
- Yanked v0.14.11 from crates.io
- Counters hashmap now evicts keys after a while to avoid its bloat ([1f3dc9c]https://github.com/netology-group/svc-agent-rs/commit/1f3dc9cae1204b8cd14e8925db7d76e53422dfc2)


## v0.14.11 (October 22, 2020)

### Fixes
- Fixed events aggregation in wrong queues in queue counter ([4fd2842]https://github.com/netology-group/svc-agent-rs/commit/4fd284242e1ade4275d1395d01b0683d5de0d2c5)
- Changed counters behaviour from counter over time window to monotonically increasing counter ([9c90f4c]https://github.com/netology-group/svc-agent-rs/commit/9c90f4ce18ae2df7e128838552895ffa465ecd40)


## v0.14.10 (October 5, 2020)

### Changes
- Added metric tags parsed from mqtt user properties ([f3582ec]https://github.com/netology-group/svc-agent-rs/commit/f3582ecb1a4d5fc7983af844e10ad7d74c626f98)


## v0.14.9 (September 22, 2020)

### Fixes
- Always use tokio threaded scheduler ([3202574]https://github.com/netology-group/svc-agent-rs/commit/3202574ec3bffd25fbc1df07a428506f86e1bedc)

## v0.14.8 (September 22, 2020)

### Fixes
- Fix tokio runtime dropping too soon (fixes 4b9d630) ([acc943c]https://github.com/netology-group/svc-agent-rs/commit/acc943c76bd9bf9030f7956b0d0ff385c80e5bfe)

## v0.14.7 (September 21, 2020)

### Features
- Allow starting Agent with already existing runtime ([4b9d630]https://github.com/netology-group/svc-agent-rs/commit/4b9d6302e4f9cabb6cf6c58dd8cf528b664cd4dd)
- Add sqlx support ([ff01a0e]https://github.com/netology-group/svc-agent-rs/commit/ff01a0eb752dcc649f97678ed0b750c484ff7e63)


## v0.14.6 (September 7, 2020)

### Fixes
- Fix tokio runtime timer ([b718e7c]https://github.com/netology-group/svc-agent-rs/commit/b718e7c31097b1ba52b311f9630f6ea3aa9f0f1f)


## v0.14.5 (September 7, 2020)

### Features
- Pass EventLoopError to AgentNotification::Abort ([c09c0d4]https://github.com/netology-group/svc-agent-rs/commit/c09c0d4e38e2b80ad33368800ff82e208b3a1784)
- Add TOKIO_THREAD_COUNT env setting ([2ac6f63]https://github.com/netology-group/svc-agent-rs/commit/2ac6f63b4188fde9cd35c10adbf58859a5e257cf)


## v0.14.4 (September 2, 2020)

### Changes
- Replaced unbounded requests channel with bounded ([cfe30a8]https://github.com/netology-group/svc-agent-rs/commit/cfe30a8222bc0d93b2225595d4fe10e315f78c9b)


## v0.14.3 (July 28, 2020)

### Changes
- Swapped `rumq_client` with `svc-rumq-client` ([d5649aa]https://github.com/netology-group/svc-agent-rs/commit/d5649aa33f93f23546d653b627fa0dae90b3a479)


## v0.14.2 (July 22, 2020)

### Changes
- Added `local_tracking_label` setters on outgoing properties ([1bd3f30]https://github.com/netology-group/svc-agent-rs/commit/1bd3f30cac66599bdec1e36c1d24b9f94711be33)

### Fixes
- Fixed reconnection not sending AgentNotification::Reconnection message ([49b853f]https://github.com/netology-group/svc-agent-rs/commit/49b853f03994903553e97cce8b24362d27014672)


## v0.14.1 (June 8, 2020)

### Changes
- MQTT notifications loop thread is now named for ease of debugging ([5ab4e13]https://github.com/netology-group/svc-agent-rs/commit/5ab4e13c010d3e1d5efda22dadd13a1e9717bb91)

### Fixes
- Updated rumq with git version so it now accounts for max_packet_size option ([b3cef19]https://github.com/netology-group/svc-agent-rs/commit/b3cef19cf320114553d4e20ede7ebd3feb026a20)


## v0.14.0 (June 4, 2020)

### Breaking changes
- Switch MQTT libraries from rumqtt to rumq ([8c20c3c]https://github.com/netology-group/svc-agent-rs/commit/8c20c3c34e468982458d7efb85a2b154aca0e755)


## v0.13.1 (May 28, 2020)

### Breaking changes

- Added Publish metadata to `AgentNotification::Message()` enum variant (now its `AgentNotification::Message(message, metadata)`) ([30a068c]https://github.com/netology-group/svc-agent-rs/commit/30a068c84342bf7d5c3dd7613375db241cde2858)

### Features

- Added `set_agent_id(AgentId)` method for `OutgoingEventProperties` ([f43580e]https://github.com/netology-group/svc-agent-rs/commit/f43580ea78a38c5753f3a227d00834b160ccae99)


## v0.13.0 (May 26, 2020)

### Breaking changes

- Reworked IncomingMessage and OutgoingMessage as enums ([96f3ab0]https://github.com/netology-group/svc-agent-rs/commit/96f3ab053bf3a8a39c15687cbaf3c20f0d9606ad)

### Features

- Added queue-counter feature ([d17357e]https://github.com/netology-group/svc-agent-rs/commit/d17357e494b0901d8f659aa8c836a850756c5771)


## v0.12.1 (April 24, 2020)

### Features

- Multicast events ([d70d3963]https://github.com/netology-group/svc-agent-rs/commit/d70d3963f3b19be9aa83b02e258e743fa59a37da and [fae57b9]https://github.com/netology-group/svc-agent-rs/commit/fae57b9464ceea5f48f1efc60ce4f5760eb25803)


## v0.12.0 (April 21, 2020)

### Breaking changes
- Changed default value of AgentConfig::reconnect_interval from 10 seconds to never reconnect ([f02869f]https://github.com/netology-group/svc-agent-rs/commit/f02869f3f7cdd44074203715f232684a57d691b7)


## v0.11.4 (April 17, 2020)

### Fixes
- Skip serializing empty timestamp ([785a657]https://github.com/netology-group/svc-agent-rs/commit/785a657c567896403b0df3cfff072e40e084d1a7)


## v0.11.3 (April 17, 2020)

### Features
- Split up incoming & outgoing short term timings ([0acd988]https://github.com/netology-group/svc-agent-rs/commit/0acd9883281f714fd865db322a64e0014f385526)


## v0.11.2 (March 3, 2020)

### Features
- Add `max_message_size` config option ([5a820c4]https://github.com/netology-group/svc-agent-rs/commit/5a820c4596a544209a2d0e597c5b96565020371d)
- Add `OutgoingRequestProperties::set_local_timestamp` ([721ccf54]https://github.com/netology-group/svc-agent-rs/commit/721ccf54004301da0a4302bc900773fdc8230e02)


## v0.11.1 (February 6, 2020)

### Features
- Add request dispatcher ([c6d7191]https://github.com/netology-group/svc-agent-rs/commit/c6d71916430073268fa25e843d9ef74e482e3b93)
- Make all incoming properties serializable ([3d033d8]https://github.com/netology-group/svc-agent-rs/commit/3d033d8e2ddfbd17e4759708cb8be5a45b208f05)
- Allow creating a subscription to an arbitrary topic  ([90de181]https://github.com/netology-group/svc-agent-rs/commit/90de18160daac56ebff2d6033ea37d8bfc4d4f8b)


## v0.11.0 (January 21, 2020)

### Changes
- Overhaul Publishable and related traits ([79c06e5]https://github.com/netology-group/svc-agent-rs/commit/79c06e569e76f44fcfd581b171c84c147c319651, [7d682f0]https://github.com/netology-group/svc-agent-rs/commit/7d682f048c504ac67342fbbe4cbcafe380058419)

### Fixes
- Skip empty agent_id serialization ([af2f2fe]https://github.com/netology-group/svc-agent-rs/commit/af2f2fe21c528c75f85b73e4a3023b3c7ae4dba1)


## v0.10.0 (December 20, 2019)

### Features
- Upgrade to v2 connection ([991f2b4]https://github.com/netology-group/svc-agent-rs/commit/991f2b484ea0082a5fee770f3ebd0dd4ddc870ef)
- Parametrize version in topics ([6feb43b]https://github.com/netology-group/svc-agent-rs/commit/6feb43b12c8d26d62f7de4978b468483d7807a5f)
- Separate API version from connection version ([49fc797]https://github.com/netology-group/svc-agent-rs/commit/49fc797649e8057f56045715f256804e45b0ffe8)
- Derive `Clone` & `Serialize` for `IncomingEventProperties` ([da9c574]https://github.com/netology-group/svc-agent-rs/commit/da9c5749bb9e07f3b08a6a5a9852c9043bef30c6)


## v0.9.5 (November 21, 2019)

### Fixes
- Skip serializing empty local tracking label ([42a51c4]https://github.com/netology-group/svc-agent-rs/commit/42a51c4993fad0c54c08986a6d7855e4bd96812c)

## v0.9.5 (November 21, 2019)

### Fixes
- Fix tracking id ([2150339]https://github.com/netology-group/svc-agent-rs/commit/2150339a4645fd5eb171588bf555f2e7be175603)


## v0.9.4 (November 21, 2019)

### Features
- Add tracking ([2fe8b8c]https://github.com/netology-group/svc-agent-rs/commit/2fe8b8c6b5c1cfd520232d7c7db1810f7949284d)


## v0.9.3 (November 12, 2019)

### Fixes
- Support negative durations ([cff7b99]https://github.com/netology-group/svc-agent-rs/commit/cff7b990247f6ff948261201562515888d32b32b)


## v0.9.2 (November 8, 2019)

### Fixes
- Skip serializing empty timing properties ([fbf4662]https://github.com/netology-group/svc-agent-rs/commit/fbf4662ae234457f56fef35df4aeea0e45d85d4b)


## v0.9.1 (November 1, 2019)

### Fixes
- Serialize timestamps & durations as strings ([0a647f4]https://github.com/netology-group/svc-agent-rs/commit/0a647f4d1c118cca3c4d8270d9ca49377b08b336)


## v0.9.0 (October 29, 2019)

### Features
- Add timing ([b338621]https://github.com/netology-group/svc-agent-rs/commit/b338621aa355e98aaaa34c6352a24e5127d81e35)


## v0.8.5 (October 2, 2019)

### Features
- Update rumqtt version to 0.31 ([c3d02ea]https://github.com/netology-group/svc-agent-rs/commit/c3d02ea0d6fc448c135c5cf978c156f68aa2615c)


## v0.8.4 (September 30, 2019)

### Changes
- Add broker properties to `IncomingRequest` ([ad40e63]https://github.com/netology-group/svc-agent-rs/commit/ad40e63956178a1a2218115a00d42237abd820d6)


## v0.8.3 (September 20, 2019)

### Fixes
- Skip response topic (de)serialization ([b057a28]https://github.com/netology-group/svc-agent-rs/commit/b057a281f0a66f9e77a95a0ffd8e9e7b1d1f94e2)



## v0.8.2 (September 19, 2019)

### Changes
- Add getters & deserialization for Connection ([36cb194]https://github.com/netology-group/svc-agent-rs/commit/36cb194d7a859d73153ca5980b8e94d5e929c393)
- Send response to request's response topic ([9a1cf6f]https://github.com/netology-group/svc-agent-rs/commit/9a1cf6fcb714e36d38e9c3af40fb42186f4e0de4)
- Make incoming event's label optional ([20f93f7]https://github.com/netology-group/svc-agent-rs/commit/20f93f7cbf8b9436e6def3ea3302bc96dd708650)



## v0.8.1 (September 12, 2019)

### Features
- Add `label` to `IncomingEvent` ([2c454c2]https://github.com/netology-group/svc-agent-rs/commit/2c454c269d7429fc8f580c13473b3d4c8a71764b)



## v0.8.0 (September 10, 2019)

### Changes
- Implement `Publishable` on `OutgoingMessage`, remove `Publish` trait ([4968cdf]https://github.com/netology-group/svc-agent-rs/commit/4968cdfb338b17385129ffef8ec421eb1c7b9e56)
- Implement `DestinationTopic` on `AgentId` ([04020b0]https://github.com/netology-group/svc-agent-rs/commit/04020b04bfef0421e8b7785054a4cbf4bf0ca86f)
- Remove `response_topic` field from `OutgoingResponse` ([c797b44]https://github.com/netology-group/svc-agent-rs/commit/c797b44e007978cc47dd999ec966a63b9cd8b797)
- Replace `to_bytes` with `into_bytes` in `Publishable` trait ([9b0df11]https://github.com/netology-group/svc-agent-rs/commit/9b0df11f6e10ce7dc09e2135cc45bb5f0dc50ed7)



## v0.7.3 (August 14, 2019)

### Changes
- Serialize `status` as string for MQTT v5 user properties compatibility ([3fb1d31]https://github.com/netology-group/svc-agent-rs/commit/3fb1d31c69387eb34f6e748fb221c684272e929a)



## v0.7.2 (June 28, 2019)

### Features
- Add connection type and incoming message properties ([d65bda8]https://github.com/netology-group/svc-agent-rs/commit/d65bda8135d352d52d55a45cf87be6cbf73cfa79)
- Add support for observer mode ([65f12fa]https://github.com/netology-group/svc-agent-rs/commit/65f12faf2cade018a06ab61f8252c16a9943a571)



## v0.7.1 (June 5, 2019)

### Features
- Add password and username to the configuration ([0d80f45]https://github.com/netology-group/svc-agent-rs/commit/0d80f45b031fcfc615111fe35495a56b7356ce9f)



## v0.7.0 (June 3, 2019)

### Changes
- Change default connection version to `v1` ([1a6eb4f]https://github.com/netology-group/svc-agent-rs/commit/1a6eb4f0adca9212daf29b7283cfb6267d7cffc6)



## v0.6.1 (May 18, 2019)

### Features
-  Add `properties` function to `OutgoingMessage` ([0a9d445]https://github.com/netology-group/svc-agent-rs/commit/0a9d445ba5eaadb740907583e5d5b35059ad3cd8)



## v0.6.0 (May 7, 2019)

### Changes
-  Use `QoS::AtMostOnce` for requests and `QoS::AtLeastOnce` for responses and events ([61834f0]https://github.com/netology-group/svc-agent-rs/commit/61834f0d7d41b882dd1ad1350c695a5b1ba7ad3e)



## v0.5.1 (Apr 24, 2019)

### Features
- Add `keep_alive_interval`, `reconnect_interval`, `outgoing_message_queue_size`, and `incoming_message_queue_size` configuration options ([3ba5a4d]https://github.com/netology-group/svc-agent-rs/commit/3ba5a4dfafbe7ae2326dfa7fda1b3a1802161c5c)

### Changes
- Make `clean_session` configuration option optional ([3ba5a4d]https://github.com/netology-group/svc-agent-rs/commit/3ba5a4dfafbe7ae2326dfa7fda1b3a1802161c5c)



## v0.5.0 (Apr 18, 2019)

### Features
- Add additional subscription functions ([3a2f2ab5]https://github.com/netology-group/svc-agent-rs/commit/3a2f2ab5e943519b5c9e4f6c7aaa2551c58d1fbb)

### Changes
- Replace `OutgoingResponseStatus` with `ResponseStatus` ([a6453f]https://github.com/netology-group/svc-agent-rs/commit/a6453f0222d95b23429d39a175d6d62190ee34ec)



## v0.4.1 (Apr 17, 2019)

### Features
- Implement `Deserialize` for `OutgoingResponseStatus` ([296173b]https://github.com/netology-group/svc-agent-rs/commit/296173b815d4ecdaa1a3e83dc2e89704cd9d65cf)



## v0.4.0 (Apr 5, 2019)

### Features
- Add `Error` type ([f76c694]https://github.com/netology-group/svc-agent-rs/commit/f76c694b97ab3aeeac7186886a88720f58c34461)
- Implement `Clone` for `Agent` ([511d01c]https://github.com/netology-group/svc-agent-rs/commit/511d01c14e6d7ee839165e0cb4f7e74ad65f9f4c)



## v0.3.1 (Mar 5, 2019)

### Features
- Add `clean_session` configuration option ([5efa53c]https://github.com/netology-group/svc-agent-rs/commit/5efa53c65ab520c61352ed44122c5d7c6aa62a5b)



## v0.3.0 (Mar 1, 2019)

### Features
- Implement `Eq`, `Hash`, `Serialize` and `Deserialize` for `AgentId` and `SharedGroup` ([4a5fe76]https://github.com/netology-group/svc-agent-rs/commit/4a5fe76dbe8c269635998070a7c742aa41595570)
- Add `Service` connection mode

### Changes
- Replace `Agent` connection mode with `Default`



## v0.2.0 (Feb 14, 2019)

### Features
- Add `Addressable` trait ([39d5faa]https://github.com/netology-group/svc-agent-rs/commit/39d5faad19f6209b88beface622c273e90dcd9c7)

### Changes
- Change arguments of `OutgoingRequestProperties` constructor ([cba56a9]https://github.com/netology-group/svc-agent-rs/commit/cba56a98f172a111042db9e544f8bd6762217f3e)
- Replace `agent_id` with `as_agent_id` ([39d5faa]https://github.com/netology-group/svc-agent-rs/commit/39d5faad19f6209b88beface622c273e90dcd9c7)



## v0.1.0 (Feb 12, 2019)

Initial release