Published by marty1885 5 months ago
This is a BETA RELEASE of our HTTP/2 client. As it is difficult for us to test our client against all possible situations. The beta release is meant for people to experiment and try our HTTP/2 client and report what does and does not work. This beta branch is synced with our main branch at least once per (beta) release.
Please help us test our HTTP/2 implementation. Open an issue and tag @marty1885 if you found any.
Comment on our compatibility tracker if you like. This allows us to gather a list of known working sites :)
BR, Martin Chang
master
Please open an issue if you need any of them.
Published by marty1885 5 months ago
This is a BETA RELEASE of our HTTP/2 client. As it is difficult for us to test our client against all possible situations. The beta release is meant for people to experiment and try our HTTP/2 client and report what does and does not work. This beta branch is synced with our main branch at least once per (beta) release.
Please help us test our HTTP/2 implementation. Open an issue and tag @marty1885 if you found any.
Comment on our compatibility tracker if you like. This allows us to gather a list of known working sites :)
BR, Martin Chang
Version::kHttp2
HttpRequest::setVersion()
deprecated and has no affect.req->setVersion()
but with newHttpClient(...., DESIRED_HTTP_VERSION)
Please open an issue if you need any of them.
Add client cert support for websocket.
Add JSON send overloads for WebSocket connections.
Minor enhancement: move some smart pointers around instead of copying them.
Remove the request shared_ptr from the multipart parser.
Fix typo in HttpAppFrameworkImpl.cc.
Avoid string copy and lowercasing on every request.
Implemented database reconnection loop.
Added getParameter() and getOptionalParameter().
Change drogon::MultiPartParser's parameters data type.
Use std::string_view for WebSockets.
Add support for gentoo linux, dev-db/mariadb contains mysql.
Introduce cpplint to the CI.
Enable readability/alt_tokens for cpplint.
Use clang-format-17.
Add newline at EOF.
Enable readability/inheritance for cpplint.
Enable build/explicit_make_pair for cpplint.
Enable build/include_order for cpplint.
Enable build/header_guard for cpplint.
Enable build/storage_class for cpplint.
Enable readability/multiline_string for cpplint.
Alias the safe hashmap template.
Simplify traits in utils.
Enhancement: extend drogon::ContentType for file handling.
Fix a wrong place of return.
Fix drogon::util::fromString().
Feature: Integrate spdlog as logging backend.
Support asynchronous sending of chunked responses.
Modify the configuration file templates in drogon_ctl.
Use execute_process instead of exec_program in FindJsoncpp.cmake.
GitHub Action to find typos in the codebase using codespell.
add discord link to readme.
Add -k option to the drogon_ctl when running the press command.
Refine request routing process.
Add CI tests with more compilers.
Avoid a race condition in database listener tests.
Remove macos-11 CI; not supported by Homebrew.
Bump github/codeql-action from 2 to 3.
Move the RealIpResolver plugin to the PreRouting join point.
Fix: typo on Mapper method.
Fix a error of coroutines on Windows.
Fix ORM: The original way did not handle exceptions correctly.
Remove the default ctor of the Row class in ORM.
Set the url of trantor to the official repository.
Fix htonll/ntohll redefinition.
Fix building with MSYS2.
Fix name issue when cross-compiling.
Pass HttpRequestPtr to custom error handlers.
Provide some functions for incrementing the value of given columns.
Return HttpAppFramework by setExceptionHandler.
Custom sessions.
Use the constexpr if instead of std::enable_if.
Make id generator consistent.
Update test_cmake.csp.
Simplify drogon test with c++17.
Remove unused and undefined overloads of isBase64.
Fix build due to trantor commit out of date and address warnings.
Fix a bug of the GlobalFilters plugin.
Fix: uuid formatting.
Update the ubuntu Dockerfile;
Add optional Criteria && || operator support;
Bump actions/checkout from 3 to 4;
Make & and * directly adjacent to variable names;
Use wss://echo.websocket.events/.ws in WebSocket client example;
Change logs in the AccessLogger plugin to TRACE level;
Fix an error in the secureRandomString function;
FIX int mapping to int64_t instead of uint64_t;
Published by an-tao about 1 year ago
Drop cpp14 build support.
Add isHead() method to HttpRequest, to preserve information about the original method for use in the controller.
Allow omitting template paremeter in execCommandSync.
Add a method to HttpRequest to access the matched routing parameters.
Update readme files.
Allow sync advice to be callable on websocket requests.
Set concurrency to prevent blocking CI queue.
Validate clang-format version & Customize clang-format path.
Extract format action into distinct job.
Split macOS and Ubuntu CIs for readability.
Set concurrency for CodeQL.
Add dependabot.yml for GH actions.
Replace sprintf with snprintf.
Use ninja to build faster.
Avoid using well-known ports for demoMain.
Simplify coroutine implementation.
Add a plugin for prometheus.
Optimize plugins with redirection functions.
Optimize regex generator.
Add override keyword to setSockOptCallback.
SlashRemover optimization.
Add the forwardCoro method to HttpAppFramework.
Possibility to add plugins without config file.
Implement QueryBuilder.
Add getOriginalPath function.
Add setsockopt to HttpClient.
Add overload function of newHttpResponse.
Add getConnectionCount method.
Add synchronization interface to model's associated query.
Use syncAdvices.empty() to check.
Remove the deprecated Json::Reader.
Adapt Drogon to take advitange of Trantor TLS refactor.
Add avatars of all contributors to the readme file.
Remove docsforge from readme.
Adapt to gcc13.
Modify the HttpMessageBody class.
Add the GlobalFilters plugin.
Add filters and plugins to the drogon.h header file.
Add webp and svg to the default file_types.
Update SqlBinder.h.
Remove path from COMPILER_COMMAND.
Hodor plugin - Use IP bytes for user IP identification.
Add SlashRemover plugin.
Support setting max_files in loggers.
Use shared_ptr to store plugins.
Throw custom exception in HttpClient.
Base64 improvements.
Add CT_TEXT_JAVASCRIPT.
Fix typo in newHttpJsonResponse documentation.
Add CodeQL workflow.
constexpr base64 length calculators.
Make isBase64() and isInteger() take string_view.
Chore: add package.xml.
Add an example of yaml config file.
Remove some unused functions.
Use unsigned char to call the std::isspace function.
Change options BUILD_CTL and BUILD_EXAMPLES and update readme with Building options.
Remove unused CI files and Jekyll config.
Ensure that all filters, AOP advices, and handlers are executed within the IO threads.
Update test.sh and build.sh by appending prefix "X" to string variable comparisons.
Recognize URI in request lines.
Address warnings on macOS CI.
Perform insensitive string compare of cookie SameSite attribute.
Temporary fix dead HttpClient.
Fix a configuration error when building drogon_ctl.
Fix generation of JSON field validation for short type.
Fix bug on Mac M1 with redis chat example code.
Fix error: conversion from ‘long int’ to ‘Json::Value’ is ambiguous.
Bugfix: PgBatchConnection did not report error message.
Fix typo in config file.
Fix a hanging bug when writing large string to text field.
Fixed logic error of limiterExpireTime_.
Fix Missing Header BaseBuilder.h in CMakeLists.
Fix: Coroutine handle should be captured by value.
Fix issues in the ListParaView and content types.
Fix target link libraries of yaml-cpp to comaptiable with vcpkg.
Fix build error on win32/mingw.
Fix CI in MacOS.
Fix broken link in CONTRIBUTING.md.
Add a configuration option to display local time in logs.
Add the stackLimit option for jsoncpp.
Add coroutine to wait until event loop ends.
Add switchThreadCoro().
Add queueInLoopCoro function.
Reduce overhead of constructing string from request status.
Add coroutine parameter binding test and make tests not blocking.
Use weakptr instead of shared_ptr in HttpClient.
Refactor HttpServer codes.
Add an option in CMakeLists.txt to set how to use trantor.
Add support to yaml config file.
Changes to free http client if no request is pending.
Trigger error message in drogon test when faced with bad parameter.
Make the token bucket full when it is initialized
Fix file r/w race condition in integration test.
Postgresql: don't handle events anymore after connection closing.
Fix multipart boundary with charset.
Fix a conan issue in github actions.
Hold shared pointer from the very beginning in WebSocketConnectionImpl.
Add onSessionStart() and onSessionDestroy() events
Support postgresql asynchronous notification (LISTEN/NOTIFY).
Update Utilities.cc
Drogon test refactor
Enable json entry as string
Mark awaiters as non-copyable
Fix HttpController regex path matching
Fix a memory leak in the redis example
Partial fix for MSYS2 compat
Add the queueInLoopCoro function.
Avoid HashDoS attacks via random per-session hash initial state.
Support the mediumint column when generate the mysql model.
Set Hiredis_FOUND to true when finding Hiredis library.
Add rate limiter.
Add some test cases for the sqlite datetime type.
Fix typo in drogon_test.h.
Fix a date race in drogon_test.
Fix a deadlock bug when closing all database connections.
Remove redundant member functions of drogon::Task.
Small patches on orm_lib.
Add support for the string_view type to SqlBinder in orm.
Fix a conflict of ssize_t type with hiredis.
Fix a test bug when clients start before servers.
Fix model template file Unreachable code.
Use the mysql_library_end() function to avoid memory leaks.
Add ‘not like‘ criteria.
Add HttpResponse::newStreamResponse().
Add the same site option for session cookie.
Add support for custom SQL query.
Update issue templates.
Enable automatic reconnect in mysql.
Add typename for clang-14.
A workaround for redis sync exec.
Resolve redis server hostname from config file.
Add username option to redis databases.
Return nullptr if a plugin is not loaded when getting it.
Support controller registration in plugin.
Check mysql-optionsv support in cmake.
Check if host header is set before setting.
Clear all database connections before quitting.
Add namespace to views when using drogon_ctl.
Support pipeline mode on PostgreSQL 14+.
Add content type to multipart file upload.
Make orm::Result compatible with C++ STL container concepts.
Throw exceptions instead of exiting when loading configuration fails.
Rename BUILD_TRANTOR_SHARED to BUILD_SHARED_LIBS.
Support compressed request.
Prevent sending multiple responses for a single request.
Remove the virtual specifier from functions marked with override.
Remove redundancies from the CMake action.
Ensure requiring a semi-colon after macros.
Omit redundant virtual specifiers.
Refactor orm::SqlBinder.
Implement toJson to convert std::vector to Json::Value.
Resolve real ip from HttpRequest.
Delete the unmaintained test script.
Change the listener port of the cookie test.
Use a raw string literal for the drogon banner.
Change timeout of pipeline test for the CI environment.
Accept "postgres" for DbClient type as well.
Log remote real address in AccessLogger.
Support coroutine filter.
Refactor db_test.cc.
Use nullopt instead of the no-argument constructor.
Set the running flag to false after calling the quit() method.
Fix doc link in README files.
Fix XXXControllers created on MSVC even if specified not to do so.
To avoid accessing a null point, make sure result == OK
before accessing the response ptr.
Fix a bug when stopping redis service.
Fix mutex lock missing.
Fix tolower with cfi sanitizer.
Add move constructor to fix clang-14 compile error.
Fix HttpClient dns cache.
Fix bug when resolving redis server hostname.
Reset timer afters relaunching on Linux.
Fix some configuration file issues.
Fix HttpFile unittest error on Windows.
Fix core dump causing by logging in destructor.
Fixing link error when linking with static c-ares.
Remove redundant resource release.
Install missing header file apply.h.
Fix deleteFutureByPrimaryKey compile fail.
Fix compilation failure without database support.
Fix Mapper::updateBy() async api.
Fix no BUILD_CTL with tests.
Fix some bugs in RedisClient.
Fix a misuse of std::move.
Fix a bug when creating models with composite keys in sqlite3.
Fix a bug when converting the content-length string to size_t.
Fix a bug when parsing multipart/form-data.
Export the getVersion method for Windows.
Add a pre-compilation macro in the pg pipeline test code.
Add toString for drogon::ReqResult.
Add max-age, samesite options to Cookie.
Enable setup output of logs to files at any time.
Use operator<< to convert ReqResult to string.
Remove sudo from build.sh.
Remove sudo from dependencies in Dockerfile.
Avoid attempt linking to std::fs when target does not exist.
Destroy fastdb client on quit.
Check HTTP client is not sending requests in sync mode on the same event loop.
Start listening after beginning advices.
Allow using json_cpp in other sublibraries.
Accept system lib for uuid on macOS.
Add Not In
to ORM Criteria.
Fix WS test potentially can get stuck.
Fix a bug in model generation.
Prevent malformed upload path causing arbitrary write.
Fix missing "using namespace drogon::orm;" at autogenerated restful controllers.
Support setting client certificate and SSL options on HTTP client
Add more method for mapper
Add overloads for SqlBinder::operator<< with non-const ref parameter
Use decay_t instead of remove_cvref_t
Prevent drogon_ctl create_view
appending empty new lines to resulting
Add an example for using coroutines of redis clients
Export some symbols for Windows
Mark all awaiters as nodiscard
Handle SIGINT too
Support CoroMapper method chaining
Remove setting c++17 in FindFilesystem
Fix Drogon not building caused by FindFilesystem
Fix deprecated warning when using openssl 3
Fix coroutine object destructing before coroutine ends in async_run
Fix build fail on CentOS8
Fix some compiler warnings
Fix the error with multiple results when calling a procedure in mysql
Fix an error when binding a function pointer to SqlBinder
Fix orm tests
Fix CI to actually build in C++14
Fix a race condition when resetting ws
Fix an error of std::bad_function_call
Update Trantor (fix sending partial files)
Published by an-tao about 3 years ago
Support sending files by range
Allow outside access to the file path of an HTTP response
Support custom MIME types and extensions
Add the getOptionalParameter method
Add async_run
Experimental HaikuOS Support
Improve AccessLogger
Add Alpine Dockerfile
Add option to disable brotli if desired by the builder
Fix a bug in the getIOLoop method
Return on redis connection errors
Fix(MutliPart): Does not respect quotes in Content-Disposition header
Fix(cmake): error in FindFilesystem
Fix(style): Change the NotFound page text color
Fix a race condition in testing
@an-tao Is busy so I'm making the release in place of him.
Add port() and host() to HttpClient
Add stop() method to the WebSocketClient class
Enables higher level of warnings when building on UNIX with GCC
Generic optimizations
Add redis example
Added support for paths containing unicode characters on Windows
Load ParseAndAddDrogonTests in DrogonConfig
Add BUILD_DOC to cmake options
Add websocket server example
CMake: Add CPack for .deb and .rpm package generation
cmake: Use GNUInstallDirs to figure out install dirs.
Fix WS client example not working with integration_test
Fix WS client example error when encountering bad IP addresses
CacheFile supports >2GB files on 64-bit Windows
drogon_ctl
now emits error on failing to create view from CSP
Added the make
program to Ubuntu docker environment
Correctly check the case-insensitive value of the upgrade header of responses in websocket connections
Fix incorrect MD5 hash when using internal MD5 implementation when input size == block size+1
Fix test success message incorrectly shown for a failed test when -s is flag present
Force using boost::filesystem when building for Android
Escape connection string in drogon_ctl create model
Fix some memory leak and race conditions in WebSocketClient