阿里巴巴集团开源软件梳理

简介:

小蚂蚁说:

开源先锋Tim O'Reilly 先生曾言:“开源软件是计算机工业最宝贵的财富”。阿里巴巴是开源社区积极的共建者,为开源软件发展做了重要的贡献,相关的 GitHub 2017年数据统计显示,阿里巴巴是唯一一家入围 GitHub 顶尖贡献名单的中国公司,值此1024程序员节,我们梳理阿里巴巴集团的重要开源项目,希望能够对大家有所帮助。

目录

一、前言

二、前端

三、Java

四、数据库

五、系统

六、教程

一、前言

程序员的语言是代码,程序员的交流工具就是开源软件。

通过开源软件,程序员不仅贡献了改变世界的工具,还向同行展示了自己的作品,期望得到交流和反馈,进一步提高软件的功能和质量。开源已经成为程序员文化的一部分。

作为软件大厂,阿里巴巴集团为开源社区贡献了大量软件,无偿提供包含了无数工程师智慧和函数的海量代码。在今天这个 1024 程序员节的特殊日子,我们为大家整理了近十年来阿里巴巴集团的开源软件,希望让大家感受程序员对世界的贡献。

b771193adb27f16b2b30fab7da4808ff3032fb17

二、前端1. 设计语言 & 前端框架 Ant Design1a9081e4bb10a7f3fb2c5002e3de62cac98b5afb
Ant Design 是蚂蚁金服开发和正在使用的一套企业级的前端设计语言和基于 React 的前端框架实现。它的特性:企业级金融产品的交互语言和视觉体系;丰富实用的 React UI 组件;基于 React 的组件化开发模式;背靠 npm 生态圈;基于 webpack 的调试构建方案,支持 ES6。

地址:https://github.com/ant-design/ant-design

  1. 可视化语法库 G2

63459fec52bed87e1f26b91fb079bf1874bdf6e0

G2 是一套基于可视化编码的图形语法,以数据驱动,具有高度的易用性和扩展性,用户无需关注各种繁琐的实现细节,一条语句即可构建出各种各样的可交互的统计图表。

地址:https://github.com/antvis/g2

  1. 可视化图表库 BizCharts

BizCharts 是基于 G2 的 React 图表库,历经阿里两年打磨,覆盖数十个产品。

地址:https://github.com/alibaba/BizCharts

  1. Node 应用框架 Egg

cbe66b7b5b5ca851a75c523fc08225374aa6f28e

egg 是为企业级框架和应用而生的 Web 框架,使用 Node.js。

地址:https://github.com/eggjs/egg

  1. 基于 React 的前端框架 umi

umi 是可插拔的企业级 React 框架,类似 Next.js。

地址:https://github.com/umijs/umi

  1. 通用渲染引擎 Rax

511a5c5fce666bc57b4543f22e65770f22f9d55c

Rax 是阿里开源的一个通用的 JavaScript 库,主要有 React 兼容的 API 。 使用 React 的就应该已经知道如何使用 Rax。特性:快速:快速的虚拟 DOM;微型:min + gzip 之后仅 8.0kb;通用:跨浏览器、Weex 和 Node.js。

地址:https://github.com/alibaba/rax

  1. 跨平台移动开发工具 Weex

808acd60a53731c702a9fb5a49a17b7f217f0f9d

Weex 是开源的跨平台移动开发工具,能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。
地址:https://github.com/apache/incubator-weex/

  1. 自动化测试解决方案 Macaca

1ba6ca498d6ce62805683afe7d4dca7764b592fe

Macaca是一套完整的自动化测试解决方案,支持移动端和PC端,支持Native, Hybrid, H5 等多种应用类型,并且提供客户端工具和持续集成服务。

地址:https://github.com/alibaba/macaca

  1. 前端物料库 ice

ca73791a9c3a61cd0e82cf99964f86bf9d82eca4

ice 是前端的海量可复用物料库,配套桌面工具极速构建前端应用,大幅提升开发效率。

地址:https://github.com/alibaba/ice

  1. HTML5 互动游戏引擎 Hilo

Hilo 是阿里巴巴集团开发的一款HTML5跨终端游戏解决方案,ta可以帮助开发者快速创建 HTML5 游戏。

地址:https://github.com/hiloteam/Hilo

  1. JavaScript 模板引擎 Velocity.js

Velocity.js 是velocity模板语法的javascript实现。Velocity 是基于Java的模板引擎,广泛应用在阿里集 体各个子公司。Velocity模板适用于大量模板使用的场景,支持复杂的逻辑运算,包含 基本数据类型、变量赋值和函数等功能。Velocity.js 支持 Node.js 和浏览器环境。

地址:https://github.com/shepherdwind/velocity.js

  1. 非侵入式运行期 AOP 框架 Dexposed

Dexposed 是阿里巴巴无线事业部第一个重量级 Andorid 开源软件,基于 ROOT 社区著名开源项目 Xposed 改造剥离了 ROOT 部分,演化为服务于所在应用自身的 AOP 框架。它支撑了阿里大部分 App 的在线分钟级客户端 bugfix 和线上调试能力。

地址:https://github.com/alibaba/dexposed

  1. 自动化测试解决方案 UI Recorder

c7579b2ba9164e7ba2650685c9d99f49cdc19d05

UI Recorder 是一款零成本的整体自动化测试解决方案,一次自测等于多次测试,测一个浏览器等于测多个浏览器!

地址:https://github.com/alibaba/uirecorder

  1. Android 应用热修复工具 AndFix

AndFix 是阿里巴巴开源的 Android 应用热修复工具,帮助 Anroid 开发者修复应用的线上问题。Andfix 是 "Android hot-fix" 的缩写。

地址:https://github.com/alibaba/AndFix

  1. 淘宝 React 框架 React Web

a398b0b068e0883439a9859b423ec0cb7601b058

淘宝前端团队开源项目React Web,通过与React Native一致的API构建Web应用。

地址:https://github.com/taobaofed/react-web

  1. 基于 Node.js 的自动化持续集成 Reliable

Reliable 是分布式架构的持续集成系统,由Macaca 团队的成员开发。适用于集成构建、集成构建等场景。她是典型的主从结构,分为reliable-master 与 reliable-slave 两部分。

地址:https://github.com/reliablejs/reliable-master

  1. 模拟数据生成器 Mock.js

Mock.js 是一款模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。提供了以下模拟功能:根据数据模板生成模拟数据,模拟 Ajax 请求,生成并返回模拟数据,基于 HTML 模板生成模拟数据。

地址:https://github.com/nuysoft/Mock

  1. React 应用的服务器渲染框架 Beidou

Beidou(北斗) 是 NodeJS & React 同构框架,基于Egg.js开发。

地址:https://github.com/alibaba/beidou

三、Java

  1. JDBC 连接池、监控组件 Druid

Druid是一个 JDBC 组件。

● 监控数据库访问性能。
● 提供了一个高效、功能强大、可扩展性好的数据库连接池。
● 数据库密码加密。
● SQL执行日志。
地址:https://github.com/alibaba/druid

  1. Java 的 JSON 处理器 fastjson

fastjson 是一个性能很好的 Java 语言实现的 JSON 解析器和生成器,来自阿里巴巴的工程师开发。

主要特点:快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson);强大(支持普通JDK类包括任意Java Bean Class、Collection、Map、Date或enum);零依赖(没有依赖其它任何类库除了JDK)。

地址:https://github.com/alibaba/fastjson

  1. 服务框架 Dubbo

Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 spring 框架无缝集成。

地址:https://github.com/alibaba/dubbo

  1. 企业级流式计算引擎 JStorm

8e749b5ee23660897765e6a020fd0da7e89c403e

JStorm 是参考 Apache Storm 实现的实时流式计算框架,在网络IO、线程模型、资源调度、可用性及稳定性上做了持续改进,已被越来越多企业使用。JStorm 可以看作是 storm 的 java 增强版本,除了内核用纯java实现外,还包括了thrift、python、facet ui。从架构上看,其本质是一个基于 zk 的分布式调度系统。

地址:https://github.com/alibaba/jstorm

  1. apns4j

apns4j 是 Apple Push Notification Service 的 Java 实现!

地址:https://github.com/teaey/apns4j

  1. 分布式数据层 TDDL

TDDL 是一个基于集中式配置的 jdbc datasource实现,具有主备,读写分离,动态数据库配置等功能。

地址:https://github.com/alibaba/tb_tddl

  1. 轻量级分布式数据访问层 CobarClient

Cobar Client是一个轻量级分布式数据访问层(DAL)基于iBatis(已更名为MyBatis)和Spring框架实现。

地址:https://github.com/alibaba/cobarclient

  1. 淘宝定制 JVM:TaobaoJVM

TaobaoJVM 基于 OpenJDK HotSpot VM,是国内第一个优化、定制且开源的服务器版Java虚拟机。目前已经在淘宝、天猫上线,全部替换了Oracle官方JVM版本,在性能,功能上都初步体现了它的价值。

地址:http://jvm.taobao.org

  1. Java 图片处理类库 SimpleImage

SimpleImage是阿里巴巴的一个Java图片处理的类库,可以实现图片缩略、水印等处理。

地址:https://github.com/alibaba/simpleimage

  1. redis 的 java 客户端 Tedis

Tedis 是另一个 redis 的 java 客户端。Tedis 的目标是打造一个可在生产环境直接使用的高可用 Redis 解决方案。

地址:https://github.com/justified/tedis

四、数据库

  1. 开源数据库 AliSQL

AliSQL 是基于 MySQL 官方版本的一个分支,由阿里云数据库团队维护,目前也应用于阿里巴巴集团业务以及阿里云数据库服务。该版本在社区版的基础上做了大量的性能与功能的优化改进。尤其适合电商、云计算以及金融等行业环境。

地址:https://github.com/alibaba/AliSQL

  1. 分布式数据库 OceanBase

OceanBase是一个支持海量数据的高性能分布式数据库系统,实现了数千亿条记录、数百TB数据上的跨行跨表事务,由淘宝核心系统研发部、运维、DBA、广告、应用研发等部门共同完成。

地址:https://github.com/alibaba/oceanbase

  1. 分布式数据库同步系统 otter

otter 基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库. 一个分布式数据库同步系统。

地址:https://github.com/alibaba/otter

  1. Oracle 数据迁移同步工具 yugong

yugong 是阿里巴巴推出的去 Oracle 数据迁移同步工具(全量 + 增量,目标支持 MySQL/DRDS)。

地址:https://github.com/alibaba/yugong

  1. 分布式 SQL 引擎 Lealone

Lealone 为 HBase 提供一个分布式SQL引擎,尝试将BigTable(HBase)和 RDBMS (H2数据库) 结合的项目。

地址:https://github.com/lealone/Lealone

  1. 关系型数据的分布式处理系统 Cobar

Cobar 是关系型数据的分布式处理系统,它可以在分布式的环境下像传统数据库一样为您提供海量数据服务。以下是快速启动场景:

地址:https://github.com/alibaba/cobar

  1. 分布式关系数据库 Alibaba Wasp

Wasp 是类Google MegaStore & F1的分布式关系数据库。

地址:https://github.com/alibaba/wasp

五、系统

  1. 分布式文件系统 FastDFS

FastDFS 是一个开源的分布式文件系统,她对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

地址:https://github.com/happyfish100/fastdfs

  1. 消息中间件 Apache RocketMQ

RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:

● 能够保证严格的消息顺序[link](www.dlbhyy.cc
image
)
● 提供丰富的消息拉取模式
● 高效的订阅者水平扩展能力
● 实时的消息订阅机制
● 亿级消息堆积能力
地址:https://github.com/apache/rocketmq/

  1. 分布式 key/value 存储系统 Tair

Tair是一个Key/Value结构数据的解决方案,它默认支持基于内存和文件的两种存储方式,分别和我们通常所说的缓存和持久化存储对应。

地址:https://github.com/alibaba/tair

  1. 系统信息采集和监控工具 Tsar

Tsar是淘宝的采集工具,主要用来收集服务器的系统信息(如cpu,io,mem,tcp等)以及应用数据(如squid haproxy nginx等),tsar支持实时查看和历史查看,方便了解应用和服务器的信息!

地址:https://github.com/alibaba/tsar

  1. 分布式消息中间件 Metamorphosis

91560100541c91d5c14aedad0031b44492cbc892

Metamorphosis (MetaQ) 是一个高性能、高可用、可扩展的分布式消息中间件,类似于LinkedIn的Kafka,具有消息存储顺序写、吞吐量大和支持本地和XA事务等特性,适用于大吞吐量、顺序消息、广播和日志数据传输等场景。www.dlbhnk.com
image

地址:https://github.com/killme2008/Metamorphosis

  1. 淘宝Web服务器 Tengine

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

地址:https://github.com/alibaba/tengine

  1. 分布式文件系统 TFS

TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,其设计目标是支持海量的非结构化数据。www.39552222.net
image

地址:https://github.com/alibaba/tfs

  1. 异步任务处理系统 TBSchedule

tbschedule 是一个简洁的分布式任务调度引擎,目的是让一种批量任务或者不断变化的任务,能够被动态的分配到多个主机的JVM中,不同的线程组中并行执行。所有的任务能够被不重复,不遗漏的快速处理。

地址:https://github.com/taobao/TBSchedule

  1. 容器引擎 Pouch

04a2ed22d016dde2b1e2f1a75dd6773b9edcd6aa

Pouch 是一款轻量级的容器引擎,拥有快速高效、可移植性高、资源占用少等特性,主要帮助阿里更快的做到内部业务的交付,同时提高超大规模下数据中心的物理资源利用率。

地址:https://github.com/alibaba/pouch

  1. 在线分析查询系统 mdrill

mdrill是一个分布式的在线分析查询系统,基于hadoop,lucene,solr,jstorm等开源系统作为实现,基于SQL的查询语法。 mdrill是一个能够对大量数据进行分布式处理的软件框架。mdrill是快速的高性能的,他的底层因使用了索引、列式存储、以及内存cache等技 术,使得数据扫描的速度大为增加。mdrill是分布式的,它以并行的方式工作,通过并行处理加快处理速度。

地址:https://github.com/alibaba/mdrill

六、教程

  1. 七天学会NodeJS文档

七天学会 NodeJS 是阿里巴巴国际站前端技术部编写的开源文档,用于学习 Node.js。

地址:https://github.com/nqdeng/7-days-nodejs

  1. Nginx开发从入门到精通

nginx由于出色的性能,在世界范围内受到了越来越多人的关注,在淘宝内部它更是被广泛的使用,众多的开发以及运维同学都迫切的想要了解nginx模块的开发以及它的内部原理,但是国内却没有一本关于这方面的书,源于此我们决定自己来写一本。本书的作者为淘宝核心系统服务器平台组的成员,本书写作的思路是从模块开发逐渐过渡到nginx原理剖析。

目录
相关文章
|
弹性计算 文字识别 负载均衡
阿里云/集团产品与开源社区软件
目前很多中小企业基本都是基于开源方案来构建自己的信息化体系,对应阿里云/集团内部产品基本上都有开源的产品,本文主要是讲解阿里云/集团内部产品对应的开源实现,如有不对请指正。1. ECS云服务器 ECS(Elastic Compute Service)是一种安全可靠、弹性可伸缩的云计算服务,助您降低 IT 成本,提升运维效率。产品地址:https://www.aliyun.com/product/e
|
供应链 Cloud Native 安全
OSCAR 分享之蚂蚁开源治理的方法和实践
用不用开源技术不再是个问题,如何用好开源技术才是
537 1
OSCAR 分享之蚂蚁开源治理的方法和实践
|
消息中间件 Kubernetes Oracle
2022 年之后的开源愿景
  在开源领域工作了十多年之后,经历了从初创公司到世界上最大的开源公司,并推出了我的开源项目资助平台,我终于有了一个想法。“开源”一词并不足以涵盖现代开放软件所有可感知的价值,开源需要一个更广阔的视野,以及一个支持开放治理和开放资金的基础设施。   在过去,开源的价值在于源代码,我们可以从自由软件的自由度和开源定义的发布标准中感知到这一点。但现在情况不一样了。现如今,开源产品的生产速度很快,但腐烂和过时的速度更快。除了源代码提供的价值之外,开源项目还有其他重要的特征。开源的价值在于项目被采用,有时候一个项目会成为某种技术事实上的标准(比如用于消息传递的 Apache Kafka)。开源的价值
187 0
|
运维 Kubernetes Cloud Native
KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点
10 月 16 日上海,OAM/KubeVela、OpenKruise、OCM 三大开源项目的社区负责人、核心贡献者和企业用户将齐聚 KubeMeet,和现场 100 名开发者聊聊新的技术环境和企业需求下,有关“云原生应用管理”的那些事儿。
KubeMeet|聊聊新锐开源项目与云原生新的价值聚焦点
|
存储 缓存 移动开发
如何设计阿里经济体都在用的搭建服务-天马
在阿里,天马完成了十几个 BU 的接入和搭建支持,整体产出了上万个模块,发布了上百万张页面,覆盖了3万+阿里运营及几十万的商家。
如何设计阿里经济体都在用的搭建服务-天马
|
Cloud Native Nacos 开发者
持续投入开源社区建设 | 阿里巴巴又一开源项目被列入 CNCF 云原生全景图
近日,阿里巴巴服务发现和配置管理领域开源项目Nacos被列入云原生全景图谱配置管理和服务发现象限,这是继Dragonfly、Dubbo、RocketMQ、OpenMessaging、 PouchContainer和Sentinel后,阿里巴巴又一开源项目被列入该图谱。
2086 0
|
前端开发 JavaScript Java
阿里巴巴集团开源软件梳理
开源先锋Tim O'Reilly 先生曾言:“开源软件是计算机工业最宝贵的财富”。阿里巴巴是开源社区积极的共建者,为开源软件发展做了重要的贡献,相关的 GitHub 2017年数据统计显示,阿里巴巴是唯一一家入围 GitHub 顶尖贡献名单的中国公司,值此1024程序员节,我们梳理阿里巴巴集团的重要开源项目,希望能够对大家有所帮助。
4442 0
|
存储 物联网 Apache
阿里巴巴布道师冯嘉:分布式消息系统的现状、挑战与未来
本文帮助大家了解对于分布式消息系统,传统的消息系统以及Messaging生态面临的挑战;结合阿里巴巴自身的开源实践,提供如何应对以上挑战的参考答案,以及OpenMessaging生态现状和未来的发展方向。
4042 0
阿里巴巴布道师冯嘉:分布式消息系统的现状、挑战与未来
|
Web App开发 消息中间件 Java