在过去几年里,Facebook 已然发展成为开源界规模最大、最活跃的企业之一。 2016年,Facebook 共推出了77个新项目,贡献者提交了6万次。目前总共有近400个项目和超过50万个关注者。
Facebook 的两个旗舰项目,React 和 React Native ,2016年分别有超过5万和4万名关注用户。 此外,Pop、Immutable 、Create React App 有超过1.5万;HipHop VM(HHVM) 、Flux 、Fresco 有超过1万;另外还有20+个项目,都有超过5000的关注用户。
2016年,Facebook 还有一些值得注意的新项目:
Draft.js 是一个基于 React 的富文本编辑器框架,提供一致的模型以及跨浏览器差异化的抽象,发布之后广受欢迎。
另一个是前面有提到的,基于 React 的项目 —— Create React App,它是第一个在 Facebook孵化器 中启动的项目,代表着一个新的起始点。也是 Facebook 用来评估一个项目如何被社区接受,并决定如何进行长期管理的重要参考项目。Create React App 将构建新应用所需的一切内容都封装到单个命令行工具中,做到不用配置就可以创建 React App。
在2016年4月的 F8 大会上,Facebook 为 Android 和 iOS 发布了一套新的工具,展示如何使用 React Native 和与之配合的技术堆栈来轻松构建跨平台应用。在9月的年度@Scale会议上,开源了 Zstandard,一种新的数据压缩算法。
10月,Facebook 贡献了 Yarn。这是一个与 Exponent、Google 和 Tilde 共同构建的新型 JavaScript 包管理器。到12月份,已有1100多个提交。
此外,Facebook 开源了快速文本分类器 FastText,目前拥有超过5000个关注者。还开源了一个相机系统 Surround360,一款全景相机和先进的图像拼接软件。
Facebook 中的许多团队也在与行业中的其他人合作。比如与 Spotify 合作,对静态代码分析工具 Infer 进行改进,并与其构建系统集成。
同时,Facebook 向核心 Chef 提供了大量的 pull 请求,并在成为Chef Board委员会的一员后,开源了22个新的 Chef cookbook ,为 systemd 提供了 cgroup2 支持。其内核团队的21位工程师对主流 Linux 提交了600多个贡献,包括 cgroups2、MD/RAID5缓存、eBPF、btrfs 和缓冲写回修复。
2016年 Facebook 总共有超过 2700 个外部贡献者的 13,000 次请求,比去年增加了40%。
以上内容整理自 Facebook 发布的回顾博客 Facebook Open Source 2016 year in review。开头有提到,2016年 Facebook 开源了77个项目,除了文中提及到的,还有不少都颇为优秀。在此,再额外选取部分进行简单补充。
Yoga ——
是一个 CSS3/Flexbox 的跨平台实现(不再限于 html )。借助它,开发人员可以在 React Native 和各个平台上快速地构建 UI 布局。通过实现许多设计师熟悉的 API 并在不同平台上向开发人员开放,以实现团队内的最大协作。
一款用于分析 iOS 内存使用和检测循环引用的工具库。这个库显示 FBAllocationTracker 和 FBRetainCycleDetector 怎么能一起合作,以及如何在真正的应用程序中使用。
ReDex ——
一个 Android 字节码的优化工具。它提供了 .dex 文件的读写和分析框架,并提供一组优化策略来提升字节码。
Parse Server ——
一个兼容 Parse.com API 的路由包,用于 Express。它是 Parse 后端的开源版本,可以部署到任何可以运行 Node.js 的基础架构。可以添加到现有的 Web 应用,也可以自行运行。
Torchnet ——
一款深度学习框架。是用 Lua 脚本语言写成,能够在标准的 x86 芯片或图形处理单元(GPUs)上运行,也可以让程序员重用某些代码。这样一来就能够降低工作量,同时也可以降低出现 bug 的几率。