Srpc Versions Save

RPC framework based on C++ Workflow. Supports SRPC, Baidu bRPC, Tencent tRPC, thrift protocols.

v0.10.2

1 month ago

New features

  • Trace : make RPCTraceOpenTelemetry default path modifiable
  • RPCVar : add HistogramCounter
  • RPCClient : add interface for client callee timeout
  • RPCClientParams : support setting transport_type, such as TT_UDP, etc.

Changes

  • RPCVar : reset() in expose() after every report interval
  • RPCModule : add filter_name and differentiate the var reported by each filter
  • RPCServerParams : use SERVER_PARAMS_DEFAULT to initialize
  • RPCVar : change the count of each Histogram bucket from accumulation to set value
  • rpc_http : revert srpc::HttpServerTask

Bug Fixes

  • RPCCompress : invoke deflateEnd/inflateEnd to release memory in gzip
  • RPCVar : fix concurrent bug when CounterVar will loop data and SummaryVar::observe()
  • RPCVar : add lock and flag when RPCFilterPolicy report()
  • Trace : call RPCModule::server_task_end() after serialize_meta() and fix some bugs
  • RPCBuffer : fix read_back boundary

v0.10.1

3 months ago

New features

  • trans_info : add trans_info through trpc and trpc-http protocol
  • rpc_context : add get_timeout_reason()
  • rpc_var : add RPCTimeWindow and TimedGaugeVar
  • RPCClient : add interface for client callee timeout

Changes

  • bazel : update bazel libsrpc name
  • cmake : set Protobuf_LIB_DIR and Protobuf_LIBRARY
  • rpc_module : use series->get_specific() for RPCModuleData
  • rpc_module : update metrics proto files and add scope_name for OpenTelemetry

Bug Fixes

  • brpc : fix brpc get_attachment bug
  • srpc_generator : fix parsing thrift
  • rpc_status : fix rpc status bug in rpc_callback

v0.10.0

1 year ago

New features

srpc tools :

Add tools named 'srpc' for building Workflow and SRPC project easily; Basic command : http, redis, rpc, api, proxy, file, compute;

Changes

srpc_generator :

Support getopt_long and more params;

Bug Fixes

test :

Fix building test when gtest >= 1.13.0;

v0.9.8

1 year ago

New Features

  • Support thrift union;

Changes

  • find_pacakge require protobuf >= 3.5.0;
  • Improve the directory to find dependent proto files;
  • Avoid no-rtti influence protobuf;
  • Add operation.name in trace and metrics attributes;

Bug Fixes

  • Fix RPCMetricsOTel and update docs;
  • Fix the usage of inet_ntop();
  • Fix RPCVarLocal deconstructor and CounterVar::create();

v0.9.7

1 year ago

Improvement

  • Add metrics, support both Prometheus and OpenTelemetry;
  • Support JsonPrintOptions on RPCContext;
  • Support server set HTTP response code; Support get/set_http_header();
  • Support batch report spans to OpenTelemetry;
  • Change span to KeyValue trans_info in rpc_meta.proto;
  • Support transport baggage in trans_info;
  • Update Cmake file: make both static and dynamic lib;
  • Check protobuf >= 3.11.0 and snappy >= 1.1.6 in Cmake file;
  • Add runtime library option on Windows;

Bug Fixes

  • Fix thrift string init bug and parsing bug;
  • Fix thrift client skeleton;
  • Fix compilation with VCPKG;

v0.9.6

2 years ago

Improvement

  • Update srpc_generator args: [protobuf|thrift] idl_file out_dir;
  • Add set_uri_fragment() for task;
  • Update example of using upstream in srpc;
  • Change peer.service to service.name in Span;
  • Add documents tutorial-07-http.md;

Bug Fixes

  • Fix srpc_generator crash when out_dir doesn't exist;
  • srpc_generator skips google/protobuf/*.proto;

v0.9.5

2 years ago

Improvement

  • Update the format of trace_id and span_id. Make RPCSpanDefault consists with RPCSpanOpenTelemetry.
  • Support caller in trpc protocol.
  • Support thrift default value.
  • Add docs to clarify the usage of HTTP request.
  • Modify Cmake files to find installed package.

Bug Fixes

  • Remove srpc_generator checking file length.
  • Supports __BIG_ENDIAN and fix ntohl in thrift.
  • Correct Span module timestamp nano.

v0.9.4

2 years ago

Improvement

  • Support thrift IDL keywords: exception extend typedef;
  • Update span context with OpenTracing specification;
  • Add log() and baggage() for task/context;
  • Add rpc proxy demo;

Bug Fixes

  • Fix segment fault when output directory doesn't exist;
  • Fix attachment crash and RPCBuffer::cut() bug;
  • Fix srpc_generator incorrect dir_prefix;
  • Fix span_id to parent_span_id bug;

v0.9.3

2 years ago

Improvement

  • Support TRPC protocol and TRPC-Http protocol;
  • Add RPCModule;
  • Set rpc client default to keep-alive connection (30 secs);
  • Support SRPC http chunked encoding;
  • Support bazel build;

Bug Fixes

  • Update generator for thrift skeleton codes;
  • Fix parser's error about multiple line comments;

v0.9.2

3 years ago

Improvement

  • Support tracing and span: Add RPCSpan; Add policies RPCSpanDefault and RPCSpanRedis;
  • Add watch_timeout for watch feature;
  • Add proxy in benchmark;
  • RPCModules: Add new module plugin for AOP; converse RPCMeta and RPCModuleData; refactor RPCSpan as a module plugin;

Bug Fixes

  • Fix parsing package name in both protobuf and thrift IDL;
  • Ignore case when compare http header keys;
  • Fix thrift message parsing bug in append();