Incubator Brpc Versions Save

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".

1.9.0

6 days ago

Feature:

  • Support gc for ListOfABAFreeId (#2479) by @stdpain
  • Support timed connect for both bthread and pthread (#2524) by @chenBright
  • Support bthread_once and bthread singleton (#2520) by @chenBright
  • Support span for new bthread (#2519) by @yanglimingcn
  • Support Protobuf 22 (#2546) by @wasphin
  • Support compatible with cmake < 3.7 by @wasphin
  • Support bthread primitive cross different worker pools (#2551) by @yanglimingcn
  • Support on_failed callback for streaming rpc (#2565) by @chenBright

Bugfix:

  • Fix gflags bthread_concurrency_by_tag validate failed (#2543) by @yanbinyang
  • Fix test/iobuf mismatch deallocation by @BusyJay
  • Fix MPSCQueue memory not released with DefaultAllocator (#2553) by @legionxiong
  • Fix using butex in return keytable (#2558) by @MJY-HUST
  • Fix cancel callback may be called twice (#2557) by @chenBright
  • Fix random value of CachedReader at first time (#2556) by @chenBright
  • Fix ELEMENTS_PER_BLOCK may be incorrect (#2562) by @shanhe72101
  • Fix compile with protobuf 22-25. (#2576) by @ketor
  • Fix rpc_channel_connection_count by @yyweii

Enhancement:

  • Support ignore eovercrowded for streaming control frame by @chenBright
  • Support bthread id for log (#2570) by @chenBright
  • Support IOBuf Profiler (#2497) by @chenBright
  • Support shutdown write and notify for success write (#2547)  by @chenBright
  • Add UT of ScopeGuard (#2569) by @chenBright
  • Get gcc version by script to support cross-compile (#2567) by @wasphin
  • Use sync log for crash fatal log by @chenBright
  • Install gdb for linux ci (#2587) by @chenBright
  • Do not link abseil interface targets (#2592) by @wasphin

Other:

  • Update documents and comments by @omahs, @Divyansh200102, @YinZheng-Sun

1.8.0

2 months ago

Feature:

  • Support multi bthread worker group with tag (#2358) (#2476) by @yanglimingcn
  • Support user callback after sending response before request/response object destruction (#2328) by @yockie
  • Support url safe base64 (#2337) by @chenBright
  • Support loongarch64 (#2364) by @zhaixiaojuan
  • Support compile with boringssl (#2399) by @ehds
  • Support user fields of baidu protocol (#2406) by @chenBright
  • Support client ALPN (#2251) by @Menci
  • Support c++20 coroutine (#2121) by @wwbmmm
  • Support grpc health check (#2493) by @jiangyt-git
  • Support A Multiple Producer, Single Consumer Queue (#2492) by @chenBright
  • Support async logging (#2413) by @chenBright
  • Support memory builtin service (#2505) by @chenBright

Bugfix:

  • Fix compile on ubuntu18.04 (#2422) by @Simonhancrew
  • Fix huge rdma_recv_block_type no effect issue (#2326) by @legionxiong
  • Fix h2 protocol abnormal case when SETTINGS_HEADER_TABLE_SIZE set to zero (#2373) by @982945902
  • Fix mbvar convert prometheus metrics format issue (#2235) by @rock-git
  • Fix bthread_usleep return code when schedule timer failed (#2435) (#2511) by @chenBright
  • Fix stream write in background not work (#2440) by @chenBright
  • Fix http verbose memory leak (#2429) by @chenBright
  • Fix window update threshold (#2418) by @jiangyt-git
  • Fix brpc/details/http_message.h compilation in CentOS8 (#2474) by @binarycopycode
  • Fix json2pb compile error of examples (#2482) by @chenBright
  • Fix scoped_refptr leave ptr_ uninit when move construct by nullptr (#2491) by @lengmoXXL
  • Fix LoadBalancerWithNaming memory leak when ssl init failed (#2503) by @ehds

Enhancement:

  • Reserve at least one idle socket (#2390) by @chenBright
  • rpm: upgrade compiler required by DoublyBufferedData by @wasphin
  • Disallow copy and assign of Channel (#2439) by @chenBright
  • LALB try left server nodes (#2428) by @FancyJan
  • Add wrr lb fallback strategy (#2441) by @jiangyt-git
  • Support max width of flame graph image (#2452) by @chenBright
  • Remove Content-Length header of GET request (#2458) by @chenBright
  • Support 100-continue of server and remove expect header of request (#2499) by @chenBright
  • Optimize Content-Length in response to HEAD request (#2469) by @chenBright
  • Fix Content-Length and Transfer-Encoding problem (#2518) by @chenBright
  • Optimize ssl read log (#2451) by @chenBright
  • Optimize ParallelChannel AddChannel Interface (#2467) by @sinomiko
  • Support uint32 reloadable flags (#2483) by @chenBright
  • tests: use global CMAKE_CPP_FLAGS (#2494) by @OdyX
  • Optimize contention: support tcmalloc GetStackTrace and reduce hash calculations (#2488) by @chenBright
  • Fix gdb bthread stack when using libc++ (#2516) by @ehds
  • Add lldb bthread stack debug script (#2514) by @ehds
  • Optimize HttpResponseSender move constructor (#2504) by @chenBright
  • Change UserDataDeleter type from function ptr to std::function (#2431) by @coyorkdow
  • Move fuzz test in main repo add more fuzz test (#2420) by @0x34d

Other:

  • Update documents and comments by @khalid586, @Sea-n, @darionyaphet, @DevanshKyada27, @Wongony, @chenBright, @Divyansh200102, @wwbmmm, @OdyX, @darionyaphet

1.7.0

5 months ago

What's Changed

Feature:

Bugfix:

Enhancement:

Others:

  • Improve/add documents by @leaf-potato @chenBright

Thanks to all contributors for the 1.7.0 version! Full Changelog: https://github.com/apache/brpc/compare/1.6.1...1.7.0

1.6.1

6 months ago

What's Changed

  • Escape span method name by @wwbmmm in #2411

Full Changelog can be found at: https://github.com/apache/brpc/compare/1.6.0...1.6.1

1.6.0

9 months ago

What's Changed

Feature:

  • Support user interceptor of server by @chenBright in #2137
  • Support TCP heartbeat of client by @chenBright in #2098
  • Support function name in logging by @chenBright in #2247
  • Support server-end progressive reader for http protocol by @TangSiyang2001 in #2210
  • Support new DoublyBufferedData for suspended bthread by @chenBright in #2225
  • Support force SSL for all connections of Acceptor by @chenBright in #2231
  • Support fixed and jittered retry backoff policy by @chenBright in #2273
  • Support release assert by @chenBright in #2306

Bugfix:

  • Fix rdma::GlobalRelease before event dispatcher is stopped by @Tuvie in #2220
  • Fix compiler optimize thread local variable access by @ehds in #2156
  • Fix butex wait_pthread handle EINTR by @jenrryyou in #2086
  • Fix bvar::MultiDimension::delete_stats() may cause core dump by @ketor in #2237
  • Fix compilation errors reported by GCC-13 by @adonis0147 in #2241
  • Fix RDMA device logging by @372046933 in #2249
  • Fix stack buffer overflow issue when calling copy_to_cstr by @jenrryyou in #2253
  • Fix resource leak when there are multiple HCAs by @372046933 in #2252
  • Fix unstable keepalive ut by @wwbmmm in #2261
  • Fix coredump stack uncomplete when usercode throw exceptions by @smbzhang in #2256
  • Fix compilation errors reported by Clang-14 by @thorneliu in #2243
  • Fix missing BAIDU_GET_VOLATILE_THREAD_LOCAL in task group by @JimChengLin in #2262
  • Fix compiler optimize thread local variable access on x86_64 by @adonis0147 in #2248
  • Fix compile warning by @cdjingit in #2274
  • Fix core when ssl is enabled without thread safety guarantees by @warriorpaw in #2180
  • Fix macos ci failed with protobuf version by @wwbmmm in #2287
  • Fix ignore SIGPIPE signal concurrent issue with other library by @lrita in #2301
  • Fix flatmap element space should align with usertype by @ehds in #2288

Enhancement:

  • Support "print all bthread frames" command for gdb bthread stack tool by @AIxWall in #2217
  • Reduce code for operator[] of FlatMap by @wy1433 in #2202
  • Set http default method to "/" by @chenBright in #2168
  • Use Hedron's Compile Commands Extractor for Bazel by @372046933 in #2250
  • Initialize offset of round robin load balancer with a random number by @xiaoma2015 in #2289
  • Support hint size of formatted string for string_printf by @chenBright in #2270
  • Support move constructor for scoped_refptr by @byronhe in #2284
  • Support rvalue task in execution_queue_execute by @chenBright in #2308
  • Support graceful exit gflag for SIGHUP by @old-bear in #2272

Others

  • Improve/add documents by @Huixxi, @chenBright, @infdahai, @372046933, @cdjingit, @ra7more,@Thunderbrook @Xiaoyao708

Full Changelog can be found at: https://github.com/apache/brpc/compare/1.5.0...1.6.0

Thanks to all contributors for the 1.6.0 version!

1.5.0

1 year ago

What's Changed

Feature:

  • Support IPv6 for DNS resolve by @jsl422 in #2139
  • Support naming timer sampling and worker threads by @ehds in #2136
  • Support different TimeoutConcurrencyConf for different method by @yanglimingcn in #2112
  • Add bvar is_hidden by @serverglen in #2205
  • Add server concurrency in status builtin service by @chenBright in #2097
  • Add avg latency for prometheus metrics by @Huixxi in #2024

Bugfix:

  • Fix the issue of const unused in the example of RDMA by @goldenbean in #2187
  • Fix domain naming service host name buffer length by @ehds in #2179
  • Fix memory leak of socket by @chenBright #2169
  • Fix not end wait when ns fails to start by @chenBright #2162
  • Fix ci failed with wrong path of libprotoc by @guodongxiaren in #2132
  • Fix the periodic naming service quit problem by @chenBright in #2123

Enhancement:

  • Remove wordexp by @wwbmmm in #2218
  • Update github workflows to skip builds for markdown-file-only changes by @kiminno in #2175
  • Reject initializing FlatMap when nbucket is 0 by @jamesge
  • Optimize some codes that violates the C++ One Definition Rule [-Wodr] by @lrita in #2161
  • Add _Alloc template parameters for FlatMap and FlatSet by @old-bear in #2149
  • Add type BasicStringPiece::const_pointer by @lrita in #2141
  • Operator overloading of PtrContainer by @chenBright in #2107
  • Make sure we can receive at least one request @yanglimingcn in #2106
  • Reduce cpu overhead when using rdma by @Tuvie in #2100

Others

  • Prefer to use env to find bash by @wasphin Improve/add documents by @haihuju, @tanzhongyi003, @wwbmmm, @wasphin, @maheshrjl, @chenBright, @NIGHTFIGHTING, @Huixxi, @zuyu, @kiminno, @wy1433, @20083017, @Thunderbrook

Full Changelog can be found at: https://github.com/apache/brpc/compare/1.4.0...1.5.0

Thanks to all contributors for the 1.5.0 version!

1.4.0

1 year ago

What's Changed

Feature

  • Support RDMA by @Tuvie in #1836, #1967, #2005 and #2036
  • Support to dump MVariable in Prometheus format by @ldak4747 in #1964
  • Support to limit max bytes in stream consume queue with the same host socket by @chenbay in #1958
  • Add timeout concurrency limiter by @yanglimingcn in #2027
  • Add a flag to manage http body on error by @jamesge
  • Add gflag to disable the sampler thread by @leaf-potato in #1990
  • Add delete_stats and has_stats interface to MVariable by @serverglen in #2041
  • Optimize parallel channel request map method by @cdjingit in #2057

Bugfix

  • Fix the linkage errors caused by duplicate symbols by @adonis0147 in #1936
  • Fix "sched_to itself" error when building by Clang on Linux aarch64 by @adonis0147 in #1950
  • Fix arena cleared early when parsing redis message by @dorothy00dd2 in #1959
  • Fix HTTP invalid host issue for channel not inited by http(s) by @thorneliu in #1973
  • Fix MacOS warning: bool literal returned from 'main' [-Wmain] by @zyearn in #2020
  • Fix issue of ssl error code by @yyweii in #2019
  • Fix: domain name length by @wayslog in #1965
  • Fix demangle core by @wwbmmm in #2037

Enhancement

  • Add rdma_performance bazel support by @372046933 in #1984
  • Add bazel third_party support by @fansehep in #1996
  • Fall back to libibverbs.so.1 by @372046933 in #1985
  • Refresh write timestamp when returning a Socket to its pool; change default value of -idle_timeout_second to 30. by @jamesge
  • Early return for IOBuf::append_user_data when size == 0 by @372046933 in #2009
  • Make BUTIL_RAPIDJSON_NAMESPACE_BEGIN::GenericDocument's handler method public to enable outside custom parser/writer by @old-bear in #2026
  • Only allow to convert root array to single repeated pb by @chenBright in #2035
  • FlatMap's value supports unique_ptr by @jamesge

Others

  • Fix warning message error by @leaf-potato in #1989
  • Migrate to GitHub workflow by @guodongxiaren and @zyearn in #1899, #2008, #2015, #2018, #2023 and #2030
  • Reduce UT log output by @wwbmmm
  • Support to pack rpm for RHEL 9 distributions by @wasphin in #1955
  • Avoid std::string copy @ml-haha in #1969
  • Include directly dependent header by @372046933 in #1993
  • Update warning message on iobuf.cpp by @wwbmmm
  • Remove unnecessary semicolon by @guodongxiaren in #2004
  • Add a description to the profile graph by @hongliuliao in #2007
  • Delete deprecated logoff_ms gflag in example folder by @leaf-potato in #2064
  • Fix rpc maybe error: "libbrpc.so: undefined symbol: pthread_mutex_lock" by @co0l1ce in #2049 and roll-backed in #2076
  • Keep bthread TaskGroup abi compatible with NDEBUG macro by @wwbmmm in #2047
  • Improve/add documents by @fansehep, @cuishuang, @tanzhongyi003, @lorinlee, @Huixxi, @steven-66, @serverglen, @wwbmmm, @wasphin, @Tuvie, @0xflotus, @thinh2, @leaf-potato, @TousakaRin, @cdjingit, @chenBright, @freemandealer and @yanglimingcn

Full Changelog can be found at: https://github.com/apache/brpc/compare/1.3.0...1.4.0

Thanks to all contributors for the 1.4.0 version!

1.3.0

1 year ago

What's Changed

  • Support gcc on linux arm64 by @jamesge
  • Support gcc version >= 11.2.0 by @wwbmmm in #1783
  • Support the latest version of bazel(default v4.2.2) by @hcoona in #1657
  • Support multi-dimension bvar, a powerful extension of bvar by @serverglen in #1608
  • Restruct event_dispatcher source file by @guodongxiaren in #1888
  • Add http retry with error code policy by @chenBright in #1927
  • Add Nacos naming service by @yyweii in #1922
  • Add customized server bvar prefix by @jenrryyou in #1854
  • Add escape log content before printing by @jamesge
  • Fix issues in FlatMap by @jamesge
  • Fix override issue in pb by @jamesge, @wwbmmm
  • Fix ALIGNAS/ALIGNOF/BAIDU_CACHELINE_ALIGMENT by @jamesge
  • Fix some warnings for clang and revert changes on ALIGNAS/ALIGNOF by @jamesge
  • Fix rpc_replay continue when failed to init channel by @ehds in #1938
  • Fix multi-dimension bvar compile error by @dabao085 in #1937
  • Fix bvar_dump_tabs default value problem by @yyweii in #1920
  • Fix butex_wait failed with timeout by @Huixxi in #1917
  • Fix rpc_replay can't send request equably by @bumingchun in #1910
  • Fix compile warning due to DumpOptions object by @ml-haha in #1905
  • Fix test_bvar fail on m1 mac by @wwbmmm in #1901
  • Fix the slow test in brpc_socket_unittest.cpp by @zyearn in #1898
  • Fix the first bthread keytable on worker pthread will be deleted twice by @chenBright in #1884
  • Fix currently broken MacOS build by @zyearn in #1871
  • Fix ProcessHttpRequest supports for http2 by @dandyhuang in #1868
  • Fix get_value core caused by the sampler thread start too early by @Huixxi in #1863
  • Fix UDS ut failed on MacOS by @wwbmmm in #1843
  • Fix coredump cause by bad growth_non_responsive http request by @acelyc111 in #1278
  • Fix not to abort when checking the errorno with unicode string by @tobegit3hub in #1142
  • Improve/add documents by @wwbmmm, @JackBoosY, @morningman, @serverglen, @chenBright, @guodongxiaren, @xdh0817, @KaneVV1, @tanzhongyi003, @lzfhust, @Huixxi
  • Fix typos by @opheliaKyouko, @day253, @chenBright, @fansehep

Thanks to all contributors for the 1.3.0 version! Full Changelog: https://github.com/apache/incubator-brpc/compare/1.2.0...1.3.0

1.2.0

1 year ago

What's Changed

  • Support apple silicon by @jamesge
  • Add an option to allow serialize/deserialize to/from a json array by @wasphin in #1604
  • Add redis empty request check by @lzfhust in #1745
  • Add butex_wake_all support nosignal flag by @yanglimingcn in #1751
  • Add wr/wrr policy degradation by @Huixxi in #1571
  • Add with_snappy in cmake by @renzhong in #1799
  • Add check append return code by @wwbmmm in #1762
  • Add CXXFLAGS in compiling protoc-gen-mcpack by @jamesge
  • Fix the header guard of brpc/periodic_task.h by @TousakaRin in #1820
  • Fix build warning, ByteSize() is deprecated, use ByteSizeLong() instead by @yangzhg in #1723
  • Fix c struct compile error by @wolfdan666 in #1736
  • Fix auto https check by @renzhong in #1754
  • Fix json2pb::JsonToProtoMessage() supports parsing multiple jsons by @jamesge
  • Fix compile error due to std limits header absent by @GOGOYAO in #1764
  • Fix a deadlock happened in ClearAbandonedStreamsImpl path by @zyearn in #1781
  • Fix send WindowUpdate when ClearAbandonedStreams is called by @zyearn in #1786
  • Fix _dl_sym undefined reference by @wwbmmm in #1784
  • Fix thrift protocol exception by @lzfhust in #1790
  • Fix Brpc build tools error when only build static by @stdpain in #1797
  • Fix discovery naming service core by @serverglen in #1802
  • Fix rpc_press can't send request equably by @bumingchun #1763
  • Fix hostname2ip fails when aux_buf is not long enough by @chenBright in #1818
  • Improve documents by @wwbmmm, @tanzhongyi003, @guodongxiaren, @372046933, @wasphin, @hawkxiang, @TousakaRin, @Huixxi, @serverglen
  • Fix typos by @jamesge, @cyberkillor

Thanks to all contributors for the 1.2.0 version! Full Changelog: https://github.com/apache/incubator-brpc/compare/1.1.0...1.2.0

1.1.0

2 years ago

What's Changed

  • Support ipv6 and unix domain socket by @wwbmmm in #1560
  • Support protobuf 3.19.x by @hcoona in #1679
  • Support http protocol dump and replay by @guodongxiaren in #1503
  • Support nshead protocol dump and replay by @wwbmmm in #1486
  • Support parse proto-text format http request body by @hiberabyss in #1690
  • Support deliver timeout from client to server for baidu_std protocol by @wwbmmm in #1472
  • Support inherit span on bthread create by @wwbmmm in #1494
  • Add rpc_replay BUILD file by @taoxu in #1677
  • Add brpc server Start(PortRange, const ServerOptions*) by @serverglen in #1460
  • Add FlatMap insert(const std::pair<key_type, mapped_type>& kv) by @serverglen in #1468
  • Add server eps bvar @serverglen in #1483
  • Fix CheckHealth not set has_request_code bug by @serverglen in #1502
  • Fix a bug that server will send unexpected data frame to client if there are errors occur during processing stream create request by @jenrryyou in #1516
  • Fix LA selection runs too long by @KaneVV1 in #1567
  • Fix HttpResponse error by @jl2005 in #1620
  • Fix bvar status compile error by @zwkno1 in #1625
  • Fix InputMessenger client side retry policy by @ehds in #1680
  • Fix work_stealing_queue_unittest for ARM by @TKONIY in #1709
  • Fix LatencyRecorder qps not accurate by @wwbmmm in #1708
  • Fix compile error after gcc11 with --std=c++20 by @hiberabyss in #1719
  • Fix unstable UT link error by @wwbmmm in #1711
  • Fix Thrift download url to avoid pr build failed by @yangzhg in #1725
  • Remove grpc ParseH2Settings warning log by @yanjianglu in #1599
  • Improve documents by @wwc7654321, @wwbmmm, @tanzhongyi003, @mahongweichina, @cdjingit, @dl239, @ehds
  • Fix typos by @yangzhg, @egolearner, @PengyiPan, @Aaaaaaron, @ehds, @JiaoZiLang, @mapleFU

Thanks to all contributors for the 1.1.0 version! Full Changelog: https://github.com/apache/incubator-brpc/compare/1.0.0...1.1.0