写点什么

百度开源的 brpc 框架新增 Rust 语言支持

  • 2019-08-08
  • 本文字数:790 字

    阅读完需:约 3 分钟

百度开源的brpc框架新增Rust语言支持


日前,百度开源的 brpc 框架项目新增 Rust 语言支持,brpc-rs 现已开源。brpc 是百度内部使用最为广泛的 RPC 框架,以 C++语言实现。2017 年 brpc 以 Apache 2.0 协议开源,并于 2018 年末被 Apache 孵化器接收。


brpc 是一个基于 protobuf 接口的 RPC 框架,在百度内部称为“baidu-rpc”,它囊括了百度内部所有 RPC 协议,并支持多种第三方协议,从目前的性能测试数据来看,brpc 的性能领跑于其他同类 RPC 产品。


brpc 开发于 2014 年,主要使用的语言是 C++Java,是百度内部使用最为广泛的 RPC 框架,它经受了高并发高负载的生产环境验证,并支撑了百度内部大约 75 万个同时在线的实例。


2018 年 Apache 基金会投票通过 baidu-rpc 进入 Apache 孵化器。这是百度继 EchartsDoris 后,第三个进入国际顶级开源社区 Apache 的项目。


brpc-rs 是一个面向 Rust 开发者的项目,开发者可以使用 Rust 语言实现 brpc 的服务和客户端。项目包括了四个 Rust 软件包,均托管 crates.io 上,用户可使用 cargo 包管理器下载使用:


  • brpc-rs:提供 Rust 风格的 brpc API 供用户调用;

  • brpc-build:用于处理用户提供的.proto 文件生成 Rust 和 C++代码;

  • brpc-sys:brpc 的底层 Rust bindings,由 brpc-sys 调用;

  • brpc-protoc-plugin:用于 protobuf compiler 的插件,由 brpc-build 调用。


Rust 是一种多范式系统编程语言,专注于安全性,尤其是安全并发性。Rust 在语法上与 C++ 类似,但它的设计目的是在保持高性能的同时,提供更好的内存安全性。过去四年来,Rust 编程语言增长强劲,2019 年在 Stack Overflow 的调查中,Rust 成为最受欢迎的编程语言。


brpc-rs 大量借鉴了 MesaLink 项目中构建安全跨语言 FFI 接口的经验,在百度安全提出的混合内存安全架构下实现了 Rust 与 C++之间的安全跨语言调用。Rust 开发者可以下载并安装 brpc-rs 框架,加以试用。


项目地址:https://github.com/mesalock-linux/brpc-rs


2019-08-08 10:3315902
用户头像
小智 让所有人认同的文字称不上表达

发布了 408 篇内容, 共 396.7 次阅读, 收获喜欢 1984 次。

关注

评论 1 条评论

发布
用户头像
不支持dubbo,请允悲
2019-08-09 09:27
回复
没有更多了
发现更多内容

架构师训练营第十四周总结

张明森

简述C语言宏定义的使用

C语言与CPP编程

c c++ 编程语言

数据结构与算法系列之数组

书旅

数据结构 算法 数组 数据结构与算法

你必须要了解的「架构」小历史

小齐本齐

spring Spring Cloud Spring Boot

CountDownLatch 瞬间炸裂!同基于 AQS,凭什么 CyclicBarrier 可以这么秀?

程序员小航

Java 源码 AQS 源码阅读 CyclicBarrier

第五周作业

Vincent

极客时间 极客大学

程序的机器级表示-异构的数据结构

引花眠

计算机基础

ARTS打卡 第16周

引花眠

微服务 ARTS 打卡计划

哦!这该死的 C 语言

苹果看辽宁体育

c 后端

PB级大规模Elasticsearch集群运维与调优实践

腾讯云大数据

大数据

CString 类的线程不安全问题

C语言与CPP编程

c c++ 编程语言

ARTS打卡Week 12

teoking

链表中移除重复节点,保罗·格雷厄姆的传奇博客,Mac三指拖动操作,大数据平台 John 易筋 ARTS 打卡 Week 17

John(易筋)

大数据 ARTS 打卡计划 链表移除相同节点 保罗格雷厄姆 mac三指操作设置

Elasticsearch索引容量管理实践

腾讯云大数据

大数据

鹰眼 | 分布式日志系统上云的架构和实践

腾讯云大数据

大数据

ASP.NET Core 性能优化最佳实践

newbe36524

微服务 性能优化 .net core ASP.NET Core

前端 10 问之 Docker (第一篇)

局外人

Docker

ARTS 打卡 (20.09.07-20.09.13)

小王同学

为什么互联网巨头们纷纷使用Git而放弃SVN?(内含Git核心命令与原理总结)

冰河

git 冰河 代码管理 代码仓库 分支合并

第五周总结

Vincent

极客时间 极客大学

导致系统不可用原因及密码验证

纯纯

智能商业时代的思考(二)网络协同抓住用户

刘旭东

微信 商业价值 数据智能 网络协同 商业智能

Mysql学习笔记:InnoDB事务和ACID模型

马迪奥

MySQL innodb

03 Spring Security 入门实例

哈库拉玛塔塔

Spring Boot kotlin spring security

oeasy教您玩转 linux 010213 中文 fcitx

o

极客大学-架构师训练营

9527

Spring 5 中文解析测试篇-Spring MVC测试框架

青年IT男

单元测试 Spring5

C语言指针详解

C语言与CPP编程

c c++ 编程语言 指针

洗牌算法

C语言与CPP编程

c c++ 算法 编程语言

ARTS Week16

时之虫

ARTS 打卡计划

安全相关总结

纯纯

百度开源的brpc框架新增Rust语言支持_开源_小智_InfoQ精选文章