trantor
Non-blocking I/O cross-platform TCP network library, using C++14
Loading...
Searching...
No Matches
Changelog
All notable changes to this project will be documented in this file.
Unreleased
1.5.28
- 2026-05-06
Fixed
Avoid abort on closeWrite shutdown failure.
1.5.27
- 2026-05-06
Changed
Add automatic SSL.
Add getter for
TcpConnection::closeCallback_
.
Remove spurious executable permissions from non-script sources.
Fixed
Fix
TRANTOR_USE_TLS
cache setting in CMake.
Fix TLS implementation quirks.
Fix server-side mTLS client certificate hostname validation.
1.5.26
- 2026-01-26
Changed
Enable Botan3 on MacOS CI.
remove TU specific variables.
Support parsing datetime with timezone.
Fixed
Fix building error for -Werror=unused-value.
Fix SPDLOG_FMT_EXTERNAL definition in CMakeLists.
Fix range sendFile() for MinGW.
Fix fread check for reading randomness.
Fixes to TLS backend.
Fix iptos.
Fix the error handling of kBufferOffset bytes when adjusting the buffer.
1.5.25
- 2025-10-29
Fixed
Fix Date::fromDbStringLocal() when YYYY-MM-DD is given.
Fix typo MICRO_SECONDS_PER_SEC.
1.5.24
- 2025-06-20
Changed
refactor: replace atomic counter with plain int in RunInLoopTest2.
Fixed
Fix compile errors in some case.
Fix a bug when sending streams.
1.5.23
- 2025-02-20
Changed
Replace ipv4 inet_ntop with a handrolled function.
Fixed
Fix some typos.
1.5.22
- 2024-10-27
Fixed
Fix a bug in the dtor of EventLoop.
Free leaked memory in ares resolver.
1.5.21
- 2024-09-10
API changes list
Add a method to reload the SSL certificate and private key on the fly.
Changed
Keep log level consistency.
1.5.20
- 2024-07-20
Changed
Add byte order detection for internal SHA1 implementation for OSX, POWER, RISC-V and s390.
Fixed
Fix Windows CI build fail by using the latest MSVC.
Fix the Botan TLS provider build on Linux.
Fix "pthread not found" build error when using Android NDK.
1.5.19
- 2024-06-08
changed
show forked repository build status.
Add cmake-format.
Some spelling corrections.
1.5.18
- 2024-05-04
Fixed
Fix data type conflict.
Fix build on latest c-ares.
1.5.17
- 2024-02-09
Changed
Make FileBufferNodeWin aware of UWP Win32 API.
Use ssize_t declared by toolchain when available.
1.5.16
- 2024-01-18
Changed
Add build badge for individual OS.
deinit libressl.
Remove mutex.
Fixed
Pile of fix for h2.
Fix a bug when sending data.
Fix c-ares CARES_EXTERN for static builds.
Fix header file name issue when cross-compiling on Windows.
Fix name issue when cross-compiling.
1.5.15
- 2023-11-27
Changed
Feature: Integrate spdlog as logging backend for Trantor Logger.
Fixed
Fix the botan backend always validating certificate and OpenSSL allowing empty ALPN.
Fix build error on OpenBSD.
Fix Botan leaking memory if connection force closed.
Fix a cmake warning.
Workaround botan backend init failure on MacOS.
Fix failing wstr conversion if locale is set to C.
1.5.14
- 2023-09-19
[Fixed]
Fix OpenSSL: read can be incomplete.
Fix botan provider.
Fix botan3 not triggering handshake finish event.
Fix an compilation error when no STL lib is found.
1.5.13
- 2023-08-23
Fixed
Fix an error when sending files.
Include <memory> header in TcpConnectionImpl.cc.
1.5.12
- 2023-08-20
API changes list
Add NetEndian versions of toIp and toIpPort.
Add setsockopt to TcpClient and TcpServer.
Support setting max files in AsyncFileLogger.
Support returning multiple results for dns parsing.
Changed
Refactor SSL handling.
Add ability to use one log file until the size-limit.
Make the std::string_view work on windows.
Drop Botan 2 support and support Botan 3.
Make the getNextLoop method multi-thread safe.
Add fallback when OpenSSL not providing BLAKE2b.
Fixed
Fix override mark.
Add missing <cstdint> header with GCC 13.
Fix AresResolver.
Fix building built-in hashes on Windows.
Fix MSYS2/Cygwin compatibility issues.
Fix more build errors on win32/mingw.
Fix off_t(on windows off_t defined with long, not longlong).
Fix bug with Trantor::Date timeZoneOffset calculation.
Fix wrong usage of shared pointer in TcpClient ctor.
1.5.11
- 2023-03-17
API Changes list
Add a method to the Logger class to enable local time displaying.
TRNANTOR_LOG_COMPACT - compact logs without source code details.
Changed
Refactor TcpServer I/O loop logic.
Fixed
Fix a conan issue.
1.5.10
- 2023-01-23
API Changes list
Changed
Use gtest 1.13 in github actions
Fixed
1.5.9
- 2023-01-23
API Changes list
Changed
Search for \ if under msvc
Fixed
1.5.8
- 2022-11-11
API Changes list
Changed
Fixed
Fix Date::timezoneOffset().
Fix socket fd leak if Connector destruct before connection callback is made.
1.5.7
- 2022-09-25
API changes list
Add utc methods for
trantor::Date
.
Changed
Remove an unnecessary semi-colon.
Added support for Solaris.
Define ssize_t as std::intptr_t on Windows.
Add an environment without openssl to github actions.
Added SSL Error Trace Log and mTLS Samples.
Use LOG_TRACE instead of LOG_DEBUG.
Fixed
Fix a race condition.
Fix iterator invalidation bug when stopping TCP server.
Partial fix of exception safety in the event loop.
1.5.6
- 2022-07-09
API changes list
Add support for sending data streams via callback.
Added mTLS support.
Changed
Make MsgBuffer constructor explicit.
Always queue connectDestroyed() in loop.
Stop calling abort() in runtime.
Give EventLoopThread::loop_ static lifetime.
Optimization SSL name matching.
Clarify SSL error message.
Rename BUILD_TRANTOR_SHARED to BUILD_SHARED_LIBS.
Fixed
Fix tolower with sanitizer cfi
include <pthread_np.h> unconditionally on freebsd
Fix thread sanitizer.
1.5.5
- 2022-02-19
API changes list
Changed
Move EventLoop::runAfter to a template.
Remove an assertion when removing channels.
Prevent TcpClient::removeConnection call on deleted TcpClient instance.
Wait for loop to exit in EventLoop destructor.
Add r-reference version of set-callback methods to TcpConnectionImpl.
Fixed
Fix a bug when closing connections on Windows/MacOS.
Fix logger causes if statement mismatch.
1.5.4
- 2021-12-10
API changes list
Changed
Correctly handle the error of the getaddrinfo function
Fixed
Fix the error when sending partial files
1.5.3
- 2021-11-28
API changes list
TcpClientImpl support SSL client certificate
Changed
Allow RVO in fromDbStringLocal
Fixed
Make sure resolvers are added when C-Ares is manually disabled
1.5.2
- 2021-10-17
API changes list
Changed
Disable setting SSL Configs when using LibreSSL
cmake: Use GNUInstallDirs to figure out install dirs
support HaikuOS
Improve Error handling for certificates/private keys
Make c-ares support optional when building
Use locale.h
Assert fd >= 0 in updateChannel()
Add Clang support for -Wall -Wextra -Werror; fix -Wunused-parameter
Fixed
Fix a small memory leak
Fix errors in log macros
Fix a race condition when TcpClient destroyed before connected
Fix the error of calling removeAndResetChannel twice
Fix a bug when EAGAIN on reading sockets
Fix compilation warnings
Fix a potential race condition
1.5.1
- 2021-08-08
API changes list
Changed
Fix warning C4244 in MSVC
Disable strict compiler check on Windows with GCC
Add support for paths containing unicode characters on Windows
Add BUILD_DOC cmake option (doxygen)
Use make_shared instead of shared_ptr(new)
Detect and handle MinGW
Fixed
Fix the destructor of AresResolver
Fix memory leak in NormalResolver
1.5.0
- 2021-06-18
API changes list
Enable multiple log files or streams.
Add SSL_CONF_cmd support.
Add runOnQuit to the EventLoop class.
Changed
Export the FixedBuffer.
Added a try_compile block to detect if we need to link against atomic.
1.4.1
- 2021-05-15
Changed
Add github actions of Windows.
Modify the way the log file is opened.
Add version/soversion to shared library.
Use double instead of long double as the type for timer durations.
Fixed
Fix a bug in the TcpConnectionImpl class.
Fix constructing Date in a daylight saving timezone.
GNU: -Wall -Wextra -Werror; fix related warnings.
Add wincrypt.h include for Windows.
1.4.0
- 2021-04-09
API changes list
Add isUnspecified() to indicate if IP parsing failed.
Add exports macro to allow Shared Library with hidden symbols by default.
Changed
Modify the AsyncFileLogger destructor.
Fixed
Recycle TimerID in the TimerQueue.
1.3.0
- 2021-03-05
API changes list
Add secondsSinceEpoch to
trantor::Date
.
Rename the 'bzero' method of the FixedBuffer class to 'zeroBuffer'.
Add SNI support to TcpClient.
Add SSL certificate validation.
Changed
Change README.md.
1.2.0
- 2021-01-16
API changes list
Add LOG_IF and DLOG like glog lib.
Changed
Enable github actions.
Add support for VS2019.
Modify the LockFreeQueue.
Fixed
Fix MinGW error with inet_ntop and inet_pton.
Fix a macro regression when using MSVC.
1.1.1
- 2020-12-12
Changed
Add Openbsd support.
1.1.0
- 2020-10-24
Changed
Disable TLS 1.0 and 1.1 by default.
Use explicit lambda capture lists.
Fixed
Fix a bug in the Date::fromDbStringLocal() method.
1.0.0
- 2020-9-27
API changes list
Add the address() method to the TcpServer class.
Change some internal methods from public to private in the Channel class.
Changed
Update the wepoll library.
Add comments in public header files.
1.0.0-rc16
- 2020-8-15
Fixed
Fix a bug when sending big files on Windows.
API changes list
Add updateEvents() method to the Channel class.
1.0.0-rc15
- 2020-7-16
Fixed
Fix installation errors of shared library.
1.0.0-rc14
- 2020-6-14
API changes list
Add the moveToCurrentThread() method to EventLoop.
Changed
Optimized LockFreeQueue by Reducing Object Construction.
Fixed
Fix a bug when sending a file.
1.0.0-rc13
- 2020-5-23
API changes list
Make the Channel class as a part of the public API.
1.0.0-rc12
- 2020-5-22
API changes list
Add a method to show if the c-ares library is used
Fixed
Fix a bug in SSL mode (#85)
Use SOCKET type in windows for x86-windows compilation
Use env to find bash in build.sh script to support FreeBSD
1.0.0-rc11
- 2020-4-27
API changes list
Add fromDbStringLocal() method to the Date class
Fixed
Fix a race condition of TimingWheel class
Fix localhost resolving on windows
1.0.0-rc10
- 2020-3-28
API changes list
Add the send(const void *, size_t) method to the TcpConnection class
Add the send(const MsgBufferPtr &) method to TcpConnection class
Add stop() method to the TcpServer class
Changed
Compile wepoll directly into trantor (Windows)
Add CI for Windows
Make CMake install files relocatable
Modify the Resolver class
1.0.0-rc9
- 2020-2-17
API changes list
Add support for a delayed SSL handshake
Change a method name of EventLoopThreadPool(getLoopNum() -> size())
Changed
Port Trantor to Windows
Use SSL_CTX_use_certificate_chain_file instead of SSL_CTX_use_certificate_file()
1.0.0-rc8
- 2019-11-30
API changes list
Add the isSSLConnection() method to the TcpConnection class
Changed
Use the std::chrono::steady_clock for timers
1.0.0-rc7
- 2019-11-21
Changed
Modify some code styles
1.0.0-rc6
- 2019-10-4
API changes list
Add index() interface to the EventLoop class.
Changed
Fix some compilation warnings.
Modify the CMakeLists.txt
1.0.0-rc5
- 2019-08-24
API changes list
Remove the resolve method from the InetAddress class.
Added
Add the Resolver class that provides high-performance DNS functionality(with c-ares library)
Add some unit tests.
1.0.0-rc4
- 2019-08-08
API changes list
None
Changed
Add TrantorConfig.cmake so that users can use trantor with the
find_package(Trantor)
command.
Fixed
Fix an SSL error (occurs when sending large data via SSL).
1.0.0-rc3
- 2019-07-30
API changes list
TcpConnection::setContext, TcpConnection::getContext, etc.
Remove the config.h from public API.
Changed
Modify the CMakeLists.txt.
Modify some log output.
Remove some unnecessary
std::dynamic_pointer_cast
calls.
1.0.0-rc2
- 2019-07-11
Added
Add bytes statistics methods to the TcpConnection class.
Add the setIoLoopThreadPool method to the TcpServer class.
Changed
Ignore SIGPIPE signal when using the TcpClient class.
Enable TCP_NODELAY by default (for higher performance).
1.0.0-rc1
- 2019-06-11
Generated by
1.15.0