You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Use new version of CI-CD Actions, checkout@v3 instead of checkout@v2 on all jobs
* Use cSpell spell check, and use ubuntu-20.04 for formatting check
* Add in bot formatting action
Copy file name to clipboardexpand all lines: README.md
+63-29
Original file line number
Diff line number
Diff line change
@@ -1,28 +1,46 @@
1
1
## backoffAlgorithm Library
2
2
3
-
This repository contains the backoffAlgorithm library, a utility library to calculate backoff period using an exponential backoff with jitter algorithm for retrying network operations (like failed network connection with server).
4
-
This library uses the "Full Jitter" strategy for the exponential backoff with jitter algorithm.
5
-
More information about the algorithm can be seen in the [Exponential Backoff and Jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) AWS blog.
3
+
**[API Documentation Pages for current and previous releases of this library can be found here](https://freertos.github.io/backoffAlgorithm/)**
6
4
7
-
The backoffAlgorithm library is distributed under the [MIT Open Source License](LICENSE).
5
+
This repository contains the backoffAlgorithm library, a utility library to
6
+
calculate backoff period using an exponential backoff with jitter algorithm for
7
+
retrying network operations (like failed network connection with server). This
8
+
library uses the "Full Jitter" strategy for the exponential backoff with jitter
9
+
algorithm. More information about the algorithm can be seen in the
10
+
[Exponential Backoff and Jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)
11
+
AWS blog.
8
12
9
-
Exponential backoff with jitter is typically used when retrying a failed network
10
-
connection or operation request with the server. An exponential backoff with jitter helps to
11
-
mitigate failed network operations with servers, that are caused due to network congestion or high request load on
12
-
the server, by spreading out retry requests across multiple devices attempting network operations.
13
-
Besides, in an environment with poor connectivity, a client can get disconnected at any time.
14
-
A backoff strategy helps the client to conserve battery by not repeatedly attempting reconnections when they are
15
-
unlikely to succeed.
16
-
17
-
See memory requirements for this library [here](./docs/doxygen/include/size_table.md).
13
+
The backoffAlgorithm library is distributed under the
14
+
[MIT Open Source License](LICENSE).
18
15
19
-
**backoffAlgorithm v1.3.0 [source code](https://github.com/FreeRTOS/backoffAlgorithm/tree/v1.3.0/source) is part of the [FreeRTOS 202210.00 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202210.00-LTS) release.**
20
-
21
-
**backoffAlgorithm v1.0.0 [source code](https://github.com/FreeRTOS/backoffAlgorithm/tree/v1.0.0/source) is part of the [FreeRTOS 202012.00 LTS](https://github.com/FreeRTOS/FreeRTOS-LTS/tree/202012.00-LTS) release.**
16
+
Exponential backoff with jitter is typically used when retrying a failed network
17
+
connection or operation request with the server. An exponential backoff with
18
+
jitter helps to mitigate failed network operations with servers, that are caused
19
+
due to network congestion or high request load on the server, by spreading out
20
+
retry requests across multiple devices attempting network operations. Besides,
21
+
in an environment with poor connectivity, a client can get disconnected at any
22
+
time. A backoff strategy helps the client to conserve battery by not repeatedly
23
+
attempting reconnections when they are unlikely to succeed.
The example below shows how to use the backoffAlgorithm library on a POSIX platform to retry a DNS resolution query for `amazon.com`.
42
+
The example below shows how to use the backoffAlgorithm library on a POSIX
43
+
platform to retry a DNS resolution query for `amazon.com`.
26
44
27
45
```c
28
46
#include"backoff_algorithm.h"
@@ -108,46 +126,61 @@ int main()
108
126
109
127
## Building the library
110
128
111
-
A compiler that supports **C90 or later** such as *gcc* is required to build the library.
129
+
A compiler that supports **C90 or later** such as _gcc_ is required to build the
130
+
library.
112
131
113
-
Additionally, the library uses a header file introduced in ISO C99, `stdint.h`. For compilers that do not provide this header file, the [source/include](source/include) directory contains [stdint.readme](source/include/stdint.readme), which can be renamed to `stdint.h` to
114
-
build the backoffAlgorithm library.
132
+
Additionally, the library uses a header file introduced in ISO C99, `stdint.h`.
133
+
For compilers that do not provide this header file, the
By default, the submodules in this repository are configured with `update=none` in [.gitmodules](.gitmodules), to avoid increasing clone time and disk space usage of other repositories (like [amazon-freertos](https://github.com/aws/amazon-freertos) that submodules this repository).
131
155
132
-
To build unit tests, the submodule dependency of Unity is required. Use the following command to clone the submodule:
156
+
By default, the submodules in this repository are configured with `update=none`
157
+
in [.gitmodules](.gitmodules), to avoid increasing clone time and disk space
158
+
usage of other repositories (like
159
+
[amazon-freertos](https://github.com/aws/amazon-freertos) that submodules this
160
+
repository).
161
+
162
+
To build unit tests, the submodule dependency of Unity is required. Use the
0 commit comments