All notable changes to this project will be documented in this file.
1.4.1 - 2021-03-07
- Fix a bug of DbClientImpl class that can lead to a crash when database connections are breaking.
1.4.0 - 2021-03-05
-
Add coroutine support.
-
Add default value interface to SqlBinder for MySQL and PostgreSQL.
-
Support SNI in the HttpClient class.
-
Validate certificate in HttpClient.
-
HttpRequest: add a feature to avoid URL encoding of the path.
-
Handle cross-compiling properly.
-
Lowercase all HTTP headers, add webp and avif types.
-
Modify FindMySQL.cmake
-
Fix an error in the HttpClient class when a response has no content-length.
-
Return 404 or 405 responses correctly.
-
Fix compilation errors on vs2019.
-
Fix stack use after scope error in client_example.
-
Fix the error when the SSL handshake fails.
1.3.0 - 2021-01-16
- Add an option for setting float precision in Json string.
-
Fix brotli link order.
-
Fix cmake with drogonctl cross-compilation.
-
sqlite3: Insert into stmtsMap_ as string_view.
-
Fix some bugs when creating models via drogon_ctl.
-
Fix an error in sqlite3 ORM generator.
-
Fix an error with missing composite key to sqlite3 ORM generator.
-
Remove the use of std::filesystem to adapt to old compilers.
-
Add github actions.
-
Serve wasm files with the correct MIME type.
1.2.0 - 2020-12-12
-
Fix error when receiving response without content-length header.
-
Fix a stack-overflow error when high concurrency happening on sqlite3.
-
Fix MinGW ORM building by enabling htonll and ntohll.
-
Modify the WebSocketTest controller to create a simple chat room.
-
Add support for OpenBSD.
-
Return 400 if the content-length is invalid.
-
Don't send content type in a 304 response.
-
Add the reuse_port option to app() interface.
-
Add the 'std::optional' support in the SqlBinder class and the Session class.
-
Add implicit page resolving capability.
1.1.0 - 2020-10-31
-
Fix failing to connect to DB if parameters contains spaces.
-
Fix a CMAKE bug when SHARED and EXAMPLES are on.
-
Fix the HttpServer::isWebSocket method.
-
Find MariaDB client library correctly on Ubuntu 20.04.
-
Fix a bug when creating sqlite3 database models.
-
Fix a bug in the Mapper::insertFuture method.
-
Disable TLS1.0/1.1 on HTTPS by default.
-
Use explicit lambda capture lists.
-
Modify the procedure of the app().run() method.
-
Support namespaces when creating view source files.
-
Add --path-to-namespace option to drogon_ctl for creating views.
-
Add the Host and Sec-WebSocket-Version headers when connecting to a websocket server.
1.0.0 - 2020-09-27
-
Fix an issue of simple_reverse_proxy when handling chunked transfer-encoding.
-
Fix a bug when losting connection to MySQL server during query.
-
Remove the expired std::iterator template.
-
Fix a bug when creating models in some special cases.
-
Modify methods related to headers.
-
Remove the expired std::iterator template.
-
Add getListeners() method to the HttpAppFramework class.
-
Remove the useless method stat() from the PluginBase class.
-
Add ConfigLoader::ConfigLoader(const Json::Value &data).
-
Add support for status code 418.
-
Modify session handling.
-
Modify the FileUpload.csp in simple_example to avoid CORS.
-
remove execution permission on /tmp/drogon.lock.
1.0.0-beta21 - 2020-08-19
- Modify the Result class in ORM.
- Fix zlib link error on Windows for the latest vcpkg.
1.0.0-beta20 - 2020-08-15
- Provide users with a method to change the session ID of a session.
-
Modify parseContentType function.
-
Modify the docker file to build release version in docker.
-
Set session to requests for websockets.
-
Modify parseContentType function.
-
Change the return value type of the mktime() function in models.
-
Fix compilation warning of sprintf function.
-
Fix a bug when saving uploaded files on Windows.
-
Fix a MySQL issue when connections are lost.
-
Resolve an issue when sending big files (>=2GB) on Windows.
-
Fix boost::string_view compilation error of MysqlConnection class.
-
Set the response Access-Control-Allow-Headers header correctly for CORS.
-
Fix a bug in drogon_ctl when creating a model, that causes to write source files multiple times.
1.0.0-beta19 - 2020-07-16
-
Add a method to disable unicode escaping in json string.
-
Add a timeout parameter when sending HTTP requests.
-
Add the getJsonError method.
-
Remove the restriction on the location of layout tags in views.
-
Add a way to set the character set when creating DbClient objects.
-
Make
GET
as the only method for accessing static files. -
Modify the 404 pages generator.
-
Modify the DbClient class.
-
Optimize the HttpResponse class.
-
Properly handle chunked encoding requests.
-
Destroy DNS resolver of HttpClient in the correct thread.
-
Add the header to resolve build errors in VS2017.
1.0.0-beta18 - 2020-06-14
-
Add a new joinpoint of AOP for modification on each HTTP response.
-
Add a method for the TERM signal handling.
-
Add getContextRef method to the WebSocketConnection class.
-
Create a class template for publish subscribe pattern.
-
Add contribution recommendations.
-
Send a close message when closing a web socket connection.
-
Add additional formats for getHttpDate function.
-
Make app().run() method callable on a non-main thread.
-
Add digest filter in examples.
-
Use string_view to parse multipart/form-data requests.
-
Fix building of ORM on FreeBSD.
-
Fix a Mysql connection error on Windows.
-
Fix a bug in ListenerManager::getIOLoop().
-
Fix the count() method of Mysql ORM.
-
Fix a compilation issue on windows.
-
Fix model generation for PostgreSQL primary keys.
-
Fix a bug with quoted column names in sqlite3 databases.
1.0.0-beta17 - 2020-05-22
- Add methods to get DbClient connection status
-
Add causal profiling with coz
-
Add filters on static file locations
-
Pass data from view to its layout container
-
Add additional HttpStatusCodes and implement a custom error handler
-
Modify drogon_ctl to show more compilation information
-
Fix a bug in drogon_ctl (when size of a line is larger than buffer size)
-
Fix a connection bug of MariaDB clients
1.0.0-beta16 - 2020-04-27
- Standardize Row and Result api in ORM
-
Add support for brotli compression
-
Parse content-type of HTTP requests
-
Remove non standard macros
-
Support url safe base64 codec
1.0.0-beta15 - 2020-03-28
-
Modify the Attributes interface of the HttpRequest class
-
Add the getHomePage() method to HttpAppFramework
-
Support br compression files
-
Update Content-Type support for PDF
-
Add support for MSVC 2015
-
Optimize the rendering of HTTP responses
-
Update the Dynamic Views Loading, add the
layout
tag -
Graceful shutdown
-
Fix error when finding the jsoncpp library
-
Fix the 'many to many' relationship in ORM
-
Fix a bug when creating json responses
-
Fix a bug on filters with WebSocketControllers
-
Fix a fatal bug in the MysqlConnection class
-
Fix crash with partial matched url
-
Fix null jsonObject from newHttpJsonRequest
1.0.0-beta14 - 2020-02-17
- None
- Add IOLoop access function
-
Add support for regular expressions when routing
-
Add location configuration for static resources
-
Port drogon to Windows
-
Support 'password' keyword in configuration files
-
Remove get_version.sh
-
Modify dynamic view loading algorithm, add 'layout' tag for view generation.
-
Fix an issue of out-of-range (#334)
-
Fix a bug in views generation (#341)
1.0.0-beta13 - 2020-01-04
- None
-
Add some unit tests (based on gtest)
-
Add a reverse proxy example
-
Make a patch to support the ossp UUID library
-
Make shared linking possible
-
Add the drogon::OStringStream class
-
Optimize ORM
-
Modify singleton logic of DrClassMap
-
Fix an error in the batch mode of libpq
-
Fix an error when clients use HTTP1.0
1.0.0-beta12 - 2019-11-30
-
Make dg_ctl a symlink
-
Modify some code styles
-
Explicitly set path to '/' for JSESSIONID cookie
-
Handle gzip errors safely
-
Add the SecureSSLRedirector plugin
-
Fix a bug in dg_ctl for creating models of sqlite3
-
Reset the flag used to parse json to false before recycling HttpRequest objects
1.0.0-beta11 - 2019-11-06
- Delete useless log output
1.0.0-beta10 - 2019-11-04
- None
- Add the headers configuration option for static files
- Fix(compilation on alpine): Replace u_short alias.
1.0.0-beta9 - 2019-10-28
-
Add interfaces for accessing content of attachments.
-
Add option to disable setting the 404 status code of the custom 404 page.
-
Make user can use any string as a placeholder's name in routing patterns.
-
Add type conversion methods to the HttpRequest and HttpResponse classes.
-
Modify cmake configuration.
-
Modify the quit() method.
-
Implement relationships in ORM.
-
Fix size_t underflow of drogon_ctl.
-
Fix some race conditions.
-
Fix a busy loop bug when connections to MySQL server are timeout.
1.0.0-beta8 - 2019-10-03
-
Add length() method to the Field class.
-
Add
as<bool>()
function template specialization to the Field class. -
Add add attribute store methods to the HttpRequest class.
-
Add the setCustomContentTypeString() method to the HttpRequest class.
-
Add thread storage.
-
Use .find('x') instead of .find("x") in a string search.
-
Add the ability to create restful API controllers.
-
Fix a bug of creating models for MySQL.
-
Fix a bug when HTTP method is PUT.
-
Fix a bug when using 'is null' substatement in ORM.
-
Fix a sqlite3 bug when some SQL errors occur.
-
Fix bug with parsing json.
-
Fix url decode.
-
Fix a error in HttpClient.
-
Fix a error in setThreadNum method.
-
Fix some race conditions.
1.0.0-beta7 - 2019-08-31
- Remove the default value parameter of some methods (#220)
-
Optimize DNS in HttpClient and WebSocketClient (support c-ares library).
-
Reduce dependencies between declarations.
-
Add database tests in the travis CI and add test cases to database tests.
-
Reduce size of docker image.
-
Make the framework API support chained calls.
-
Add a synchronous join point for AOP.
-
Modify the CMakeLists to modern cmake style.
-
Fix bugs in default return values of functions(#220),
-
Fix a bug in the cmake configuration file when there's '+' in the building path.
-
Fix a bug in drogon_ctl (when creating orm models)
1.0.0-beta6 - 2019-08-08
- None
-
Modify the 'create view' sub-command of drogon_ctl
-
Optimize the transmission of pipelining responses.
-
Add the DrogonConfig.cmake file so that users can use drogon with the
find_package(Drogon)
command.
1.0.0-beta5 - 2019-08-01
- None
- Add two methods to control if the Server header or the Date header is sent to clients with HTTP responses.
- void HttpAppFramework::enableServerHeader(bool);
- void HttpAppFramework::enableDateHeader(bool);
- Support high performance batch mode of libpq.
- None
1.0.0-beta4 - 2019-07-30
- HttpRequest::query() returns a const reference of std::string instead of a string_view
- WebSocketConnection::setContext(), WebSocketConnection::getContext(), etc.
- Remove the config.h from public API.
- None
- Modify the CMakeLists.txt
- Modify the get_version.sh
- None
1.0.0-beta3 - 2019-07-28
- None
- Add a README file for examples.
- Add some managers to reduce the size of the HttpAppFrameworkImpl code.
- Add missing wasm ContentType.
- Update the submodule - trantor.
- Optimize processing of HTTP pipelining.
- Fix an error in the HttpClient class when sending a request using the HEAD method.
1.0.0-beta2 - 2019-07-10
- Add setBody methods to the HttpRequest class.
- Add the setContentTypeCodeAndCustomString method to the HttpResponse class.
- Add stress testing command to drogon_ctl.
- Add -v, -h parameters to drogon_ctl.
- Update the submodule - trantor.
- Modify the handling of CORS.
- Optimize the htmlTranslate method and the Field class.
- Make all listeners share IO threads in the MacOS/Unix system.
- Fix a bug of the IsPlugin class.
- Use default constructor of string_view to reset _statusMessage to fix a warning on GCC 9.1 on Arch Linux.