上市的 Uber 背后有哪些强大的开源项目

当地时间 5 月 10 日上午,出行巨头 Uber 在纽交所挂牌上市,Uber 崛起背后的技术文化,也是众多专家们研究的对象之一,本文将和大家盘点下 Uber 都开源了哪些项目

1. deck.gl

GitHub地址项目 GitHub 地址 Star 6063

deck.gl
deck.gl

deck.gl ,是由 Uber 开源的基于 WebGL 的可视化图层。用于React 的 WebGL 遮罩套件,提供了一组高性能的数据可视化叠加层。为数据可视化用例提供测试、高性能的图层,如 2 维和 3 维的散点图、choropleths 等。

2.  react-vis

GitHub地址项目 GitHub 地址 Star 5590

react-vis
react-vis

react-vis 是 Uber 公司开源的数据可视化库,能够制作折线图、饼状图等常用图表。

3.  ludwig

GitHub地址项目 GitHub 地址 Star 4597

ludwig
ludwig

这是一款基于 Google TensorFlow 框架上的开源工具箱。藉由 Ludwig,用户无需再编写任何代码即可进行深度学习的开发。

4. Kraken

GitHub地址项目 GitHub 地址 Star 2519

P2P 的镜像仓库,这个项目着重于可扩展性和可用性,并且适用于再混合云架构中的镜像管理,复制和分布。Kraken 还支持后台扩展,可以以其他容器仓库为后台,单纯的作为发布层来部署。

5. RIBs

GitHub地址项目 GitHub 地址 Star 4586

Uber 的移动架构框架,构建具有类似架构的跨平台应用程序,使 iOS 和 Android 团队能够交叉审查业务逻辑代码

RIBs
RIBs

上图是一个 RIB 各组件之间相互协作的依赖关系。

6. cadence

GitHub地址项目 GitHub 地址 Star 1908

Cadence 是一种分布式,可扩展,持久且高度可用的编排引擎,可以以可伸缩和弹性的方式执行异步长期运行的业务逻辑。

7. luma.gl

GitHub地址项目 GitHub 地址 Star 1409

一个用于数据可视化的 JavaScript WebGL 框架

8. react-map-gl

GitHub地址项目 GitHub 地址 Star 4452

react-map-gl 提供一个围绕 Mapbox GL JS的React 友好 API 封装,是一个基于 webGL 的矢量瓦片地图库。

9. AresDB

GitHub地址项目 GitHub 地址 Star 1916

AresDB 是 Uber 开源的一个基于 GPU 运算的实时分析存储引擎和查询引擎。具备低查询延迟、高数据刷新率和高效内存和磁盘存储管理。AresDB 的查询引擎使用 C++ 编写,存储管理和其他查询组件使用 Go 编写。

10. AutoDispose

GitHub地址项目 GitHub 地址 Star 2193

AutoDispose 是 Uber 开发的自动绑定+处理 RxJava 2 流的 Java 库。可以用来解决 Android 生命周期组件导致的 RxJava 的内存泄漏情况。

11. Makisu

GitHub地址项目 GitHub 地址 Star 1604

  • Uber 开源的快速 Docker 镜像生成工具,其特点包括:
  • 不需要特殊权限,开发过程更加容易移植;
  • 开发集群内部使用分布式层间缓存提高性能;
  • 提供灵活层间管理,减少 images 中不必要文件;
  • 与容器 Docker 兼容;支持标准和多阶段开发命令。

12. NullAway

GitHub地址项目 GitHub 地址 Star 2509

NullAway 是 Uber 开源的一款帮助你清除 Java 代码中的 NullPointerException(NPE)的工具,快速且实用。NullAway 类似于 Kotlin 和 Swift 语言中的基于类型的可空性检查,能显着提高开发人员的生产力,同时也满足高要求的安全检查需求。

13. h3

GitHub地址项目 GitHub 地址 Star 1348

蜂窝多边形算法 H3,首先这个包是用 C 写的,要在 Python上用,就必须要 gcc 和 make 来进行编译。

14. pyflame

GitHub地址项目 GitHub 地址 Star 2285

pyflame 则是由 Uber 开源出来的针对 python 程序生成火焰图的工具。

15. tchannel

GitHub地址项目 GitHub 地址 Star 1058

TChannel 是用于 RPC 的网络复用和成帧协议。