Sming - powerful open source framework simplifying the creation of embedded C++ applications.
This is a major release containing fixes, new features and backwards-incompatible changes
SmtpClient (#1380) A powerful asynchronous smtp client that allows sending emails directly from ESP8266.
MqttClient: changing server and port setting can be done in runtime (#1390)
Added support for Nextion displays. (#1389)
Added open collective badge and information for financial contributions. (#1398)
Added support for lambdas in the Timer class (#1378) Using C++11 std::function and std::bind
Added support for POST params and file upload via POST in the HttpClient. (#1381)
Exposed the remote port and ip for the connections. (#1370)
Improvements to the InfraRed libraries (#1318)
Replaced DHT library with DHTesp. Updated the samples accordingly. (#1341)
Improved design for the HttpConnection. (#1386)
Refactored the streams (#1377)
Refactored SSL validators (#1379)
Those changes will affect your code ONLY if you use DIRECTLY in your application the following classes.
HttpMultipartStream
* HttpMultipartStream
is renamed to MultipartStream
* SmingCore/Network/Http/Stream/HttpMultipartStream.h
is moved to SmingCore/Data/Stream/MultipartStream.h
HttpChunkedStream.h
* HttpChunkedStream
is renamed to ChunkedStream
* SmingCore/Network/Http/Stream/HttpChunkedStream
is moved to SmingCore/Data/Stream/ChunkedStream.h
DataSourceStream.h and OutputStream.h are now located in SmingCore/Data/Stream/
.
SmingCore/Data/
.The deprecated TcpConnection::setSslFingerprint
is removed. Use TcpClient::pinCertificate
instead.
TcpConnection::setSslClientKeyCert
is deprecated. Use TcpConnection::setSslKeyCert
instead. It can be used on a server to set the server certificate used for encryption, or on a client to set a client certificate used for authentication.
TcpClient::pinCertificate
will add multiple SSL validators. This is quite useful if you have one private key, that is currently used on the server, and another backup key, just in case the previous key gets compromised. In that case one can do the following:MqttClient mqttClient;
// ...
mqttClient.pinCertificate(fingerprintPublicKeyCurrent, eSFT_PkSha256); // first fingeprint
mqttClient.pinCertificate(fingerprintPublicKeyEmergencyBackup, eSFT_PkSha256); // second fingerprint
In the example above the first fingerprint will be checked. If it is valid no further checks will be done. If the first one fails then the next will be validated. If none of the fingerprints was valid then the connection will be rejected.
All PRs merged in this release can be seen from here
For a complete list of changes run the following command:
git log 3.5.2..3.6.0
Thanks to everyone who helped us make this release happen.
This is a minor release containing:
std::function
that will eventually replace Delegates.All PRs scheduled for this release can be seen from here
For a complete list of changes run the following command:
git log 3.5.1..3.5.2
Thanks to everyone who helped us make this release happen.
Sming v3.5.1 is here. With this minor version you will have more free heap memory at your disposal and less bugs.
Some of the changes in this release:
length()
method in the DataSourceStream classes is deprecatedAll PRs scheduled for this release can be seen from here
For a complete list of changes run the following command:
git log 3.5.0..3.5.1
Thanks to everyone who helped us make this release happen.
Santa came earlier this year and we are ready with the new v3.5.0 release!
In it you will find the following new features and improvements
spiffs_mount
to work with rBoot(#1292)All PRs that made it in this release can be found here: https://github.com/SmingHub/Sming/milestone/13.
For a complete list of changes run the following command:
git log 3.4.0..3.5.0
Thanks to everyone who helped us make this release happen and especially to our first-time contributors! You are awesome!
This release contains major changes related to better compatibility with Arduino.
And much more. All merged PRs in this release can be seen from here
For a complete list of changes run the following command:
git log 3.3.0..3.4.0
Thanks to everyone who helped us make this release happen.
This release contains major changes related to Tcp stack, HTTP client and servers and Websocket processing.
And much more. All merged PRs in this release can be seen from here
For a complete list of changes run the following command:
git log 3.2.0..3.3.0
Thanks to everyone who helped us in this new release.
This version includes:
If there are no show-stoppers then this version will be the last RC version.
For a complete list of changes between RC1 and RC2 run the following command:
git log 3.3.0-rc1..3.3.0-rc2
This version includes:
This is a clean-up release.
Some of the main changes include
And multiple bug fixes to the code and the documentation.
All merged PRs in this release can be seen from here
For a complete list of changes run the following command:
git log 3.1.2..3.2.0
And last but not least this release would have been possible without the help of our fantastic contributors and community members. This time we give our special thanks to Jarek Zgoda who helped us clean a lot of old code and improve existing one.
This release contains changes leading to more free heap space, faster tcp operations, faster and smaller Docker images, improved CI tests for Windows and more.
And much more. All merged PRs in this release can be seen from here
python
version 2.7 or bigger is a requirement in order to be able to upload the compiled application to your device and be able to see the memory analysis.For a complete list of changes run the following command:
git log 3.1.0..3.1.2
And last but not least this release would have been possible without the help of our fantastic contributors and community members. And again special thanks to ADiea who contributed a lot in this release and has a trove of features that promise even more improvements.