1.0.0 release candidate 01
Merge pull request #1193 from ustccy/hotfix_epollwait_about_to_quit
add flag BTHREAD_NEVER_QUIT
tree: 9161cf93a731fb2306f42da32d811ee074826371
- .github/
- bazel/
- cmake/
- docs/
- example/
- java/
- package/
- python/
- src/
- test/
- tools/
- .asf.yaml
- .bazelrc
- .gitignore
- .travis.yml
- BUILD.bazel
- build_in_travis_ci.sh
- CHANGES.md
- CMakeLists.txt
- CODE_OF_CONDUCT.md
- config.h.in
- config_brpc.sh
- CONTRIBUTING.md
- DISCLAIMER
- Dockerfile
- glog.BUILD
- leveldb.BUILD
- LICENSE
- Makefile
- NOTICE
- openssl.BUILD
- README.md
- README_cn.md
- RELEASE_VERSION
- WORKSPACE
- zlib.BUILD
README.md
中文版
![Build Status](https://api.travis-ci.com/apache/incubator-brpc.svg?branch=master)
![brpc](data:image/png;base64,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)
An industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances(not counting clients) and thousands kinds of services. “brpc” means “better RPC”.
You can use it to:
- Build a server that can talk in multiple protocols (on same port), or access all sorts of services
- restful http/https, h2/gRPC. using http/h2 in brpc is much more friendly than libcurl. Access protobuf-based protocols with HTTP/h2+json, probably from another language.
- redis and memcached, thread-safe, more friendly and performant than the official clients.
- rtmp/flv/hls, for building streaming services.
- hadoop_rpc (may be opensourced)
- rdma support (will be opensourced)
- thrift support, thread-safe, more friendly and performant than the official clients.
- all sorts of protocols used in Baidu: baidu_std, streaming_rpc, hulu_pbrpc, sofa_pbrpc, nova_pbrpc, public_pbrpc, ubrpc and nshead-based ones.
- Build HA distributed services using an industrial-grade implementation of RAFT consensus algorithm which is opensourced at braft
- Servers can handle requests synchronously or asynchronously.
- Clients can access servers synchronously, asynchronously, semi-synchronously, or use combo channels to simplify sharded or parallel accesses declaratively.
- Debug services via http, and run cpu, heap and contention profilers.
- Get better latency and throughput.
- Extend brpc with the protocols used in your organization quickly, or customize components, including naming services (dns, zk, etcd), load balancers (rr, random, consistent hashing)
Try it!
Contribute code
Please refer to here.
Feedback and Getting involved