字节开源项目盘点:过去一年的十大成果

发表时间: 2022-02-01 21:27

祝全天下的开发者朋友,新年职业发展虎啸风生,新年工资增速如虎添翼,新年爱情运势虎跃龙骧,新年代码事故虎口逃生,虎!虎!虎!

开源“圣经”《大教堂与集市》一书中曾言:任何行业的成功几乎都直接和这个行业供应商及客户所享有的自由度相关。而在软件开发行业,开源是让技术走向普及、下沉落地的不二法门。开源软件系统性地利用开放式开发和分布式同行评审,不仅降低了开发成本,还提高了软件质量。由此,"Open Source is eating the world"从臆想变为了现实。

字节跳动技术团队过去一年间,以审慎的态度在开源领域稳扎稳打,陆续向社区开放了多个经过内部业务验证的开源项目,也向社区反哺了多个主流开源项目的新特性

以下内容为字节跳动技术团队公众号所发布的字节跳动开源技术集合,以飨读者。

干货太多,请先点赞、在看、转发、收藏一键四连~

sonic :基于 JIT 技术的开源全场景高性能 JSON 库

sonic 是字节跳动开源的一款 Golang JSON 库,基于即时编译(Just-In-Time Compilation)与向量化编程(Single Instruction Multiple Data)技术,大幅提升了 Go 程序的 JSON 编解码性能。同时结合 lazy-load 设计思想,它也为不同业务场景打造了一套全面高效的 API。自 2021 年 7 月份发布以来, sonic 已被抖音、今日头条等业务采用,累计为字节跳动节省了数十万 CPU 核。

项目地址:https://github.com/bytedance/sonic

sonic:基于 JIT 技术的开源全场景高性能 JSON 库

btrace:基于 Systrace 的高性能 Trace 工具

btrace(又名 RheaTrace) 是抖音基础技术团队自研的一款高性能 Android Trace 工具,它基于 Systrace 实现,并针对 Systrace 不足之处加以改进。目前已有多款 App 接入,包括抖音、TikTok、今日头条、幸福里等,并为其体验优化提供强有力支持。

项目地址:https://github.com/bytedance/btrace

btrace 开源!基于 Systrace 高性能 Trace 工具

Monoio:基于 io-uring 的高性能 Rust Runtime

Monoio 是字节跳动服务框架组开源的基于 io-uring 的 thread-per-core 模型高性能 Rust Runtime,旨在为高性能网络中间件等场景提供必要的运行时。在与同类型工具的绝大部分测试中,Monoio 都具有更低的延迟和更高的吞吐。Monoio 提供了 thread-per-core 场景下最高性能的 Runtime 实现,目前字节已经开始基于 Rust 和 Monoio 构建下一代 Service Mesh。

项目仓库:https://github.com/bytedance/monoio

Monoio:基于 io-uring 的高性能 Rust Runtime

企业级设计系统 ArcoDsign

ArcoDesign 是由字节跳动 GIP UED 团队和架构前端团队联合推出的企业级设计系统。ArcoDesign 拥有系统的设计规范和资源,同时依据规范提供了丰富的原子组件,覆盖了 React、Vue、Mobile、Chart 等框架和方向。在原子组件基础上也提供了丰富的定制化工具,包括风格配置平台、物料平台等,也提供了资源平台包括 IconBox、品牌库、Arco Pro 最佳实践等。旨在帮助设计师与开发者解放双手、提升工作效率,更高效、高质量的打造符合业务规范的中后台应用。

官网:https://arco.design/

项目地址:https://github.com/arco-design/arco-design

刚刚,两大重磅开源框架正式官宣!

现代 Web 开发框架 Modern.js

Modern.js 脱胎于字节跳动 Web Infra 团队推动的前后端一体化的“现代 Web”开发理念,是以客户端为中心,前后端一体的现代 Web 开发框架。该框架能降低软件应用开发和服务器端门槛,实现在同一套程序里一体化开发,在开发、调试、运行、部署等环节做到无服务器化,让前端技术栈的开发者更容易成为真正的产品开发者。

官网:https://modernjs.dev/

项目地址:https://github.com/modern-js-dev/modern.js

刚刚,两大重磅开源框架正式官宣!

移动研发工具链 MBox

MBox 是字节跳动抖音基础技术、Client Infra-DevOps 根据移动端研发出现的现状与问题,结合移动端研发工具相关实践经验,自研的一款面向移动端开发者的研发工具链产品。MBox CLI (Command Line Tool) 已经开源啦!现已支持 CocoaPods (iOS) 与 Bundler 项目,后续将增加更多平台支持。通过开源,我们希望更多的开发者能够加入到 MBox 的生态建设中来,为广大的移动端开发者带来一款出色的研发工具。

项目地址:https://github.com/mboxplus/mbox

一文读懂字节跳动自研移动研发工具链 MBox

微服务中间件 CloudWeGo

多年来,在亿级流量背后,字节跳动基础架构团队开发的技术底座支撑着庞大的微服务生态系统,从 2018 年至今,团队维护的在线微服务数量增长了近 600%,超过 5 万。面对这样的规模和增速,提高性能、可扩展性和稳定性成了构建 CloudWeGo 的核心。作为项目维护方,字节跳动基础架构团队已推进项目以 CloudWeGo 开源库为主进行迭代,未来,团队将坚持内外维护一套代码,统一迭代演进,并逐步分享更多内部微服务最佳实践。

项目地址:https://github.com/cloudwego

字节跳动正式开源内部微服务中间件 CloudWeGo

Flutter 应用内调试工具 UME

字节跳动已有累计超过 70 款 App 使用了 Flutter 技术,公司内有超过 600 位 Flutter 开发者。在这一数字背后,有一条完整的 Flutter 基础设施链路作为支撑。UME 是由字节跳动 Flutter Infra 团队出品的 Flutter 应用内调试工具,目的是在脱离 Flutter IDE 与 DevTools 的情况下,提供应用内的调试功能。在字节跳动,UME 内部版已打磨了超一年时间,服务了近二十个 App,众多插件功能广受开发者好评。

项目地址:https://github.com/bytedance/flutter_ume

UME - 丰富的Flutter调试工具

安全好用的 ORM 框架-GEN

GEN 是一个基于 GORM 的安全 ORM 框架,其主要通过代码生成方式实现 GORM 代码封装。旨在安全上避免业务代码出现 SQL 注入,同时给研发带来最佳用户体验,由字节跳动无恒实验室与 GORM 作者(https://github.com/jinzhu)联合研发。具有自动同步库表、代码一键生成、字段类型安全、查询优雅返回等特性。

项目地址:https://github.com/go-gorm/gen

无恒实验室联合GORM推出安全好用的ORM框架-GEN

GAN 模型压缩框架 OMGD

字节跳动技术团队在计算机视觉顶会 ICCV 2021 上发表的在线多粒度蒸馏算法(Online Multi-Granularity Distillation,简称 OMGD),专治 GAN 模型体积过大、太费算力,目前已经开源了代码 以及 CycleGAN 与 Pix2Pix 的预训练模型,并且已经在抖音等产品上落地。实验表明,这项技术可以把 GAN 模型的计算量最低减少到原来的 1/46、参数量最低减少到原来的 1/82。

项目地址:https://github.com/bytedance/OMGD

字节跳动开源GAN模型压缩框架,算力最高节省97.8%丨ICCV 2021


下期字节技术年货预告:自研篇

正月初三11:00,不见不散!