One predominant question we get asked frequently is what are the build size and runtime memory usage of the wolfSSL embedded SSL library. Hopefully this post will help clear things up.
Firstly, wolfSSL was built from the ground up to be optimized for embedded and resource-constrained devices and environments. As such, we have kept a close eye on keeping our SSL library small while still providing the features our users want and need.
Build sizes (compiled binary size) for wolfSSL range between 30-100kB depending on build options and the compiler being used. Typically on an embedded system, build sizes will be around 60kB. This size will include a full-featured TLS 1.2-compliant client and server. For details on build options, please see Chapter 2 of the wolfSSL Manual.
Looking at runtime memory usage, wolfSSL will generally consume somewhere between 5-50kB (average is around 3kB). The runtime RAM usage per connection will vary depending the size of the input/output buffers being used. For example, with standard 16kB buffers, the total runtime memory usage of wolfSSL with a single connection would be 3kB + 16kB + 16kB = 35kB.
If you have any further questions about wolfSSL code sizes, please contact us at email@example.com. For a full list of wolfSSL features, please visit the wolfSSL Product Page.