TarsCpp Versions Save

C++ language framework rpc source code implementation

v3.0.20

1 month ago
  • fix: tc_ex using namespace std outside tars
  • fix: tc_port SigInfo use NoDestroyLifetime TC_Singleton
  • fix: RemoteTimeLogger not init twice
  • fix: free applicationCommunicator when application terminate
  • fix: servantprx/adapterprx tars_set_push_callback nullptr protected
  • fix: unit-test use tarsmock
  • fix: fix remote log sync bug when log size too big
  • fix: communicator _schedCommunicatorEpoll create use array
  • fix: tc_port exec out buff size limit
  • feat: tc_port add check pid alive
  • feat: tc_option parseString use static
  • feat: tc_port kill add return value
  • feat: tc_port add freopen
  • feat: epoll server destroyApp not call bug and destroyApp log
  • feat: add tarsmock to simulate tars framework
  • feat: tc_port add getCommandLine/getPidsByCmdline
  • feat: tc_socket: getLocalHosts support withLoopIp
  • feat: tars-tools.cmake add CMAKE_CXX_FLAGS_RELEASE&CMAKE_CXX_FLAGS_DEBUG
  • feat: unit-test support TARS_SHARED_PTR
  • feat: support build_with_std_shared_ptr for python
  • feat: Application add getRemoteConfig
  • feat: tc_mysql support mysql 8.0
  • feat: EndpointInfo add vectorEndpointFToStr/strToVectorEndpointF/toNodeEndpointF to support multi network interfaces
  • feat: fix tc_socket getLocalHosts support ipv4
  • feat: EndpointInfo add toEndpointFs

v3.0.19

3 months ago

en

  • fix: tars-tools.cmake in windows
  • fix: tc_port fix forkExec bug
  • fix: remote logger remove ServerConfig::Context
  • fix: current not report one_way stat(useless)
  • fix: StatReport interface, remove parameters not used
  • fix: tc_option support parameter with ", like this: --test="abc"
  • fix: When the server actively closes the connection, RPC may cause memory leak issues
  • fix: push callback may crash
  • fix: KeepAliveNodeFHelper no singleton
  • fix: gzip compress coredump
  • fix: PingCallback set servantPrx
  • fix: remote config, when tarsconfig timeout not use local config file bug
  • fix: tars-tools.cmake.in add: list(APPEND TARS_TOOL_FLAG "")
  • fix: trace, no not depend ServerConfig
  • fix: tars-tools.cmake set TARS_SSL/TARS_MYSQL/TARS_HTTP2 depends tarscpp compiler
  • feat: modify xxx_fcontext name to avoid conflict with other co lib
  • feat: rpc add time distr report
  • feat: tc_port add getDiskInfo/getCpuLoad/getUPTime/getPidStartTime/getPidMemUsed/getCwd/kill and support mac/windows/linux
  • feat: tc_port add closeAllFileDescriptors in linux/mac
  • feat: tc_file add joinPaths/toAbsolute
  • feat: Application first bind adminObj, then initialize, then bind other objs
  • feat: EndpointInfo add toEndpointF
  • feat: AdminF.tars add getPid
  • feat: ServantHandle in servant use shared ptr
  • feat: ClientConfig change to Communicator subclass, no global static object
  • feat: ClientConfig add context, when call other core tars server with this context, node_name in context
  • feat: add ApplicationCommunicator to support multi Appliations in one process
  • feat: support master-slave mode in frameworkPro
  • feat: Application add ServerBaseInfo in Application
  • optimize: bind after initialize when Applicaion start
  • optimize: RemoteConfig remove singleton
  • optimize: loading local ip list cache
  • optimize: AppCache only initialize once
  • optimize: global rolllog only init once

v3.0.18

3 months ago

en

  • fix: udp ipv6 bug
  • fix: unit-test get fd counts in mac
  • fix: udp send/recv bug when multi net threads in communicator
  • fix: servanthandle only keep one servant
  • fix: cmake /SAFESEH:NO
  • fix: cmake -fsigned-char only in unix
  • fix: epoll server fd leak in co mode
  • fix: tc_logger snprintf compiler warning
  • fix: epoll server queue mode in co mode
  • fix: cmake CMAKE_INSTALL_PREFIX
  • update NotifyF.tars, delete some interface not used
  • Optimize the initialization process of Current to improve performance
  • feat: Application add: getBindAdapter by obj
  • not compiler gtest mock(mac latest gcc gtest can not compiler)
  • support arm32 compiler
  • support cpu(i686) compiler
  • support arm cross compiler(CMAKE_TOOLCHAIN_FILE)

cn

  • 修复: udp ipv6的bug
  • 修复: mac下unit-test中fd的计算
  • 修复: 多线程的通信器模式下, udp收发包的bug
  • 修复: ServantHandle只保留一个Servant, 提高性能
  • 修复: cmake /SAFESEH:NO
  • 修复: cmake 默认打开-fsigned-char, 避免arm下编译的问题
  • 修复: epollserver 在协程模式下句柄的泄露(不影响业务)
  • 修复: tc_logger snprintf 中的编译警告
  • 修复: epoll server队列模式在协程模式下的bug
  • 修复: cmake CMAKE_INSTALL_PREFIX
  • 更新NotifyF.tars, 删除了不再使用的接口
  • 优化了Current初始化过程, 提高性能
  • Application添加根据obj获取BindAdapter的函数: getBindAdapter
  • 不再编译gtest mock
  • 支持arm32的编译
  • 支持cpu为i686的编译
  • 支持了arm交叉编译, 支持CMAKE_TOOLCHAIN_FILE

v3.0.17

3 months ago

v3.0.17 20231007

en

  • fix remote logger, set _logStatReport default value
  • fix time logger crash bug when comm not initialize
  • fix cmake clear install
  • fix tc_json double bug
  • fix commumicator ssl ctx init bug
  • fix tc_socket sizeof duplicate bug
  • fix push callbak onClose(ep)
  • fix http_call request use const
  • fix ServantProxy::invoke crash on QiLin OS
  • tc_autoptr add staticCast
  • open /MT in windows by default
  • push callback add onConnected
  • tarsregistry update self ip list
  • ServantProxy add tars_close, close fd of prx
  • hash code type use size_t
  • set max tars package size 100M
  • add tc_timeout_queue_map(key value cache+queue)
  • add tc_socket_async
  • Update Contributing.md

cn

  • 修复: 远程日志未设置_logStatReport缺省值的问题
  • 修复: 通信器未初始化时, 按天日志可能会crash的问题
  • 修复: cmake清除installde问题
  • 修复: tc_json double类型解析的bug
  • 修复: 通信器ssl ctx初始化的问题
  • 修复: tc_socket中使用sizeof有误的问题
  • 修复: push callbak中onClose(ep)没有被回调的问题
  • 修复: http_call请求参数使用const
  • 修复: 在麒麟OS上, ServantProxy::invoke 的 crash
  • tc_autoptr 添加 staticCast
  • windows编译默认开启/MT
  • push callback 添加 onConnected回调
  • tarsregistry更新自己的ip list
  • ServantProxy 添加了tars_close, 关闭自己的句柄
  • hash code 类型统一修改为 size_t
  • 最大网络包调整为100M
  • 添加工具类: tc_timeout_queue_map(key value cache+queue)
  • 添加工具类: tc_socket_async
  • 修改Contributing.md

v3.0.16

9 months ago

v3.0.16 20230810

en

  • please notice!!!! default value of bool in tars struct set to false
  • fix: tc_timer stopTimer clear all timer
  • fix: application init add globe lock, only main(const string &config)
  • fix: udp send/recv buffer set
  • fix: TC_NetworkBuffer, support C++17,
  • fix: TC_Http some packets causing infinite loops
  • fix: epoller syncCallback may cause crash
  • fix: TC_ThreadRWLocker tryWriteLock & tryReadLock bug
  • fix: promise compiler bug, TypeAt<0, char, int, double> n = 0, error: wrong number of template arguments (4, should be 2)
  • fix: tc_cgi open file with binary mode
  • TarsStructBase use virtual deconstructor
  • Optimize AdapterProxy::checkActive and force connection establishment if there are no services to choose from
  • comunicator reloadProperty add initialize
  • Add try catch when tcp setKeepAlive
  • AdapterProxy checktimout check
  • Rpc call record exeception in sync mode
  • In keepalive mode, tars_ping is called: When the response is no func or no servant, cancel keepalive
  • Do not enable keepalive in third-party protocol mode
  • When keepalive mode is enabled, each obj can independently set keepalive mode
  • tc_epoll_server manualListen/cancelListen use asyncCallback

cn

  • 特别注意: tars协议中bool类型的缺省值改为false
  • fix: tc_timer stopTimer时清除掉所有事件
  • fix: 增加Application全局初始化锁
  • fix: 设置udp模式下send/recv buffer大小的bug
  • fix: TC_NetworkBuffer编译支持C++17,
  • fix: TC_Http 在某些异常包导致的死循环
  • fix: TC_Epoller syncCallback可能导致的crash
  • fix: TC_ThreadRWLocker tryWriteLock & tryReadLock bug
  • fix: promise 编译错误 TypeAt<0, char, int, double> n = 0, error: wrong number of template arguments (4, should be 2)
  • fix: tc_cgi 打开文件使用binary mode
  • 优化: TarsStructBase使用虚拟析构函数
  • 优化: AdapterProxy::checkActive 当没有服务时, 强制发起连接
  • 优化: 通信器comunicator reloadProperty 添加初始化判断
  • 优化: 增加try catch 当设置tcp setKeepAlive
  • 优化: AdapterProxy中检查超时的参数和逻辑
  • feat: rpc完善异常上报
  • feat: 启用keepalive模式下, 如果响应表示无服务或接口, 则取消keepalive
  • feat: 不要启用keepalive在第三方协议模式下
  • feat: 可以针对obj独立开启是否keepalive
  • feat: tc_epoll_server manualListen/cancelListen使用 asyncCallback

v3.0.15

9 months ago

v3.0.15 20230415

en

  • Fix: adapter memory leak
  • Fix: set property report min = 0
  • Feat: add getTimeUs

cn

  • 修复: Adapter未连接时可能的内存泄漏
  • 修复: Property上报min默认为0
  • 特性: 增加微秒接口

v3.0.14

9 months ago

v3.0.14 20230307

en

  • Fix: tars2node to avoid warning
  • Fix: possible memory leaks
  • Feat: log add prefix
  • Feat: add tc_split
  • Feat: refreshReg when keep alive

cn

  • 修复: tars2node to avoid warning
  • 修复: 可能的内存泄漏
  • 特性: 日志增加前缀
  • 特性: 添加tc_split
  • 特性: keepAlive的时候refreshReg

v3.0.13

9 months ago

v3.0.13 20221117

en

  • Fix: TC_Port::getSystemMemInfo not close fd bug
  • Fix: threadpool waitForAllDone not quit bug in some time
  • Fix: tc_common str2tm add memset tm
  • Fix: QueueMode bug when fd=-1
  • Fix: tarsmerge bug when multi tars files, orderFileNames.erase(it->second) cause crash
  • Fixed the HTTP client crash when compiling with SSL and the unusable HTTP client when compiling without SSL
  • Fix: [MSVC][std:c++latest] Fix compiler error
  • Feat: tc_http dorequest support https
  • Feat: ServantHandle&async_callback支持右值引用参数
  • Feat: PushCallbackDemo

cn

  • 修复: TC_Port::getSystemMemInfo异常时没有关闭句柄的bug
  • 修复: 线程池 waitForAllDone 有时候不退出的bug
  • 修复: tc_common str2tm 初始化tm(memset), 会导致时间获取不准
  • 修复: 服务QueueMode模式下fd=-1导致进错队列的bug
  • 修复: tars2merge 多层嵌套tars文件,当第二次移除同一元素时会崩溃 orderFileNames.erase(it->second);
  • 修复: [MSVC][std:c++latest] 修复编译错误
  • 修复: tc http在https模式下http doRequest的crash
  • 新增: 新增 PushCallbackDemo
  • 新增: tc_http dorequest 支持 https
  • 新增: ServantHandle&async_callback支持右值引用参数

v3.0.12

1 year ago

v3.0.12 20220815

en

  • Fix: TC_Shm bug, can not delete shm after detach
  • Fix: http_call memory leak
  • Fix: tars2node list & map as interface paramters bug when http+json call bug
  • Fix: epoll server doResponse close connection when client close connection
  • Fix: getConnStatus bug that return all connections on all listen ports
  • Fix: the problem that no root servantproxy will not be called in the scenario where multi thread calls are started at the same time when serial calls are made(http mode).
  • Fix: Asynchronous callback if dyeing open, active enabledying is required
  • Feat: tars2node add tars_ping
  • Feat: add common_protocol_call, Support any short connection mode similar to http
  • Feat: Add server stat(Current)
  • Feat: Reconnect supports millisecond intervals, and supports reconnection only for those in active state in the master registration list, to avoid invalid operations after capacity reduction on k8s

cn

  • Fix: TC_Shm 修复无法删除shm的bug
  • Fix: http_call内存泄露的bug
  • Fix: tars2node修复当list & map作为接口参数时, 无法通过http+json调用的bug
  • Fix: epoll server 根据 doResponse参数来主动关闭连接的问题, 避免管理连接不及时
  • Fix: getConnStatus 修复返回了所有监听端口的连接的bug
  • Fix: 修复串行调用的时候,同时启动多线程调用的场景,非根servantproxy对应的prx不会被调用的问题
  • Fix: 异步回调如果判断如果染色了需要主动enableDyeing
  • Feat: tars2node 添加 tars_ping
  • Feat: ServantProxy添加 common_protocol_call, 支持任何类似http的短连接模式
  • Feat: 增加服务端请求统计(Current)
  • Feat: reconnect支持毫秒间隔,并且支持只对在主控注册列表里为active状态的进行重连,避免k8s上缩容后无效操作

v2.4.20

2 years ago

v2.4.20 2021.07.27

en

  • application add addServantWithParams support parameter for handle
  • remove message.h opentracking define
  • fix tc_timer memory leak and timer id duplicate bug
  • support grpc and add GrpcDemo and fix tc_grpc compiler
  • 修复 windows 下 socket 设置阻塞异常
  • 修复 refresh-endpoint-interval 配置无效
  • update unittest

cn

  • Application 添加 addServantWithParams, 支持Servant构造参数
  • 去掉Message.h opentracking 定义
  • 修复tc_timer内存泄露和timer id可能冲突的问题
  • 支持grpc GrpcDemo, 修复tc_grpc compiler
  • 修复 windows 下 socket 设置阻塞异常
  • 修复 refresh-endpoint-interval 配置无效
  • 更新unittest