content/en/_index.html (62 lines of code) (raw):
+++
title = "bRPC"
linkTitle = "bRPC"
+++
{{< blocks/cover image_anchor="top" height="max" color="primary" >}}
<img src="/images/brpc_logo_ww.svg" class="brpc-logo" style="max-width:95%" />
<h3 style="margin:20px" >An industrial-grade RPC framework for building reliable and high-performance services.</h3>
<div class="mx-auto">
<a class="btn btn-lg btn-primary font-weight-bold my-4" href="{{< relref "/docs" >}}">
Learn More
</a>
<a class="btn btn-lg btn-primary font-weight-bold my-4" href="{{< relref "/docs/downloadbrpc" >}}">
Download bRPC
</a>
</div>
<div class="mx-auto">
<a class="h3 mt-1">
Get started!
</a>
<!--
<div class="h3 mt-1">Get started!</div>
<a class="btn btn-lg btn-primary mr-3 mb-4 my-3" href="{{< relref "/docs" >}}">
Get bRPC
</a>
<a class="btn btn-lg btn-primary mr-3 mb-4 my-3" href="https://github.com/apache/brpc">
<i class="fas fa-ellipsis-h"></i>
</a>
-->
</div>
{{< /blocks/cover >}}
<div id="overview">
<div class="contain" style="width: auto; margin: 0 auto">
<h1 class="section-head">Why bRPC?</h1>
<p>
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.
</p>
<h3 class="section-head">You can use it to:</h3>
<div class="father" style="display: flex; justify-content: center; margin: 0 20px">
<div class="child">
<li style="text-align:left">Build a server that can talk in multiple protocols (on same port), or access all sorts of services.</li>
<ol style="text-align:left">
<li>
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.
</li>
<li>redis and memcached, thread-safe, more friendly and performant than the official clients.</li>
<li>rtmp/flv/hls, for building streaming services.</li>
<li>hadoop_rpc (may be opensourced).</li>
<li>rdma support.</li>
<li>thrift support, thread-safe, more friendly and performant than the official clients.</li>
<li>all sorts of protocols used in Baidu: baidu_std, streaming_rpc, hulu_pbrpc, sofa_pbrpc, nova_pbrpc, public_pbrpc, ubrpc and nshead-based ones.</li>
<li>Build HA distributed services using an industrial-grade implementation of RAFT consensus algorithm which is opensourced at braft</li>
</ol>
<li style="text-align:left">Servers can handle requests synchronously or asynchronously.</li>
<li style="text-align:left">Clients can access servers synchronously, asynchronously, semi-synchronously, or use combo channels to simplify sharded or parallel accesses declaratively.</li>
<li style="text-align:left">Debug services via http, and run cpu, heap and contention profilers.</li>
<li style="text-align:left">Get better latency and throughput.</li>
<li style="text-align:left">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)</li>
</div>
</div>
</div>
</div>
<div id="overview">
<div class="contain">
<p>
<img src="/images/asf_logo_apache.svg" style="max-width:30%" alt="The Apache Software Foundation" title="The Apache Software Foundation">
</p>
<h4>
bRPC is an <a href="http://www.apache.org/">Apache</a> Top-Level Project
</h4>
</div>
</div>
<!--
{{< blocks/section >}}
<div class="col">
<h1 class="text-center">This is the second Section</h1>
</div>
{{< /blocks/section >}}
-->