不完整收錄:過去一年字節(jié)開源的10個(gè)項(xiàng)目丨字節(jié)技術(shù)年貨(字節(jié)開發(fā)平臺(tái))
祝全天下的開發(fā)者朋友,新年職業(yè)發(fā)展虎嘯風(fēng)生,新年工資增速如虎添翼,新年愛情運(yùn)勢(shì)虎躍龍?bào)J,新年代碼事故虎口逃生,虎!虎!虎!
開源“圣經(jīng)”《大教堂與集市》一書中曾言:任何行業(yè)的成功幾乎都直接和這個(gè)行業(yè)供應(yīng)商及客戶所享有的自由度相關(guān)。而在軟件開發(fā)行業(yè),開源是讓技術(shù)走向普及、下沉落地的不二法門。開源軟件系統(tǒng)性地利用開放式開發(fā)和分布式同行評(píng)審,不僅降低了開發(fā)成本,還提高了軟件質(zhì)量。由此,"Open Source is eating the world"從臆想變?yōu)榱爽F(xiàn)實(shí)。
字節(jié)跳動(dòng)技術(shù)團(tuán)隊(duì)過去一年間,以審慎的態(tài)度在開源領(lǐng)域穩(wěn)扎穩(wěn)打,陸續(xù)向社區(qū)開放了多個(gè)經(jīng)過內(nèi)部業(yè)務(wù)驗(yàn)證的開源項(xiàng)目,也向社區(qū)反哺了多個(gè)主流開源項(xiàng)目的新特性。
以下內(nèi)容為字節(jié)跳動(dòng)技術(shù)團(tuán)隊(duì)公眾號(hào)所發(fā)布的字節(jié)跳動(dòng)開源技術(shù)集合,以饗讀者。
干貨太多,請(qǐng)先點(diǎn)贊、在看、轉(zhuǎn)發(fā)、收藏一鍵四連~
sonic :基于 JIT 技術(shù)的開源全場(chǎng)景高性能 JSON 庫
sonic 是字節(jié)跳動(dòng)開源的一款 Golang JSON 庫,基于即時(shí)編譯(Just-In-Time Compilation)與向量化編程(Single Instruction Multiple Data)技術(shù),大幅提升了 Go 程序的 JSON 編解碼性能。同時(shí)結(jié)合 lazy-load 設(shè)計(jì)思想,它也為不同業(yè)務(wù)場(chǎng)景打造了一套全面高效的 API。自 2021 年 7 月份發(fā)布以來, sonic 已被抖音、今日頭條等業(yè)務(wù)采用,累計(jì)為字節(jié)跳動(dòng)節(jié)省了數(shù)十萬 CPU 核。
項(xiàng)目地址:https://github.com/bytedance/sonic
sonic:基于 JIT 技術(shù)的開源全場(chǎng)景高性能 JSON 庫
btrace:基于 Systrace 的高性能 Trace 工具
btrace(又名 RheaTrace) 是抖音基礎(chǔ)技術(shù)團(tuán)隊(duì)自研的一款高性能 Android Trace 工具,它基于 Systrace 實(shí)現(xiàn),并針對(duì) Systrace 不足之處加以改進(jìn)。目前已有多款 App 接入,包括抖音、TikTok、今日頭條、幸福里等,并為其體驗(yàn)優(yōu)化提供強(qiáng)有力支持。
項(xiàng)目地址:https://github.com/bytedance/btrace
btrace 開源!基于 Systrace 高性能 Trace 工具
Monoio:基于 io-uring 的高性能 Rust Runtime
Monoio 是字節(jié)跳動(dòng)服務(wù)框架組開源的基于 io-uring 的 thread-per-core 模型高性能 Rust Runtime,旨在為高性能網(wǎng)絡(luò)中間件等場(chǎng)景提供必要的運(yùn)行時(shí)。在與同類型工具的絕大部分測(cè)試中,Monoio 都具有更低的延遲和更高的吞吐。Monoio 提供了 thread-per-core 場(chǎng)景下最高性能的 Runtime 實(shí)現(xiàn),目前字節(jié)已經(jīng)開始基于 Rust 和 Monoio 構(gòu)建下一代 Service Mesh。
項(xiàng)目倉庫:https://github.com/bytedance/monoio
Monoio:基于 io-uring 的高性能 Rust Runtime
企業(yè)級(jí)設(shè)計(jì)系統(tǒng) ArcoDsign
ArcoDesign 是由字節(jié)跳動(dòng) GIP UED 團(tuán)隊(duì)和架構(gòu)前端團(tuán)隊(duì)聯(lián)合推出的企業(yè)級(jí)設(shè)計(jì)系統(tǒng)。ArcoDesign 擁有系統(tǒng)的設(shè)計(jì)規(guī)范和資源,同時(shí)依據(jù)規(guī)范提供了豐富的原子組件,覆蓋了 React、Vue、Mobile、Chart 等框架和方向。在原子組件基礎(chǔ)上也提供了豐富的定制化工具,包括風(fēng)格配置平臺(tái)、物料平臺(tái)等,也提供了資源平臺(tái)包括 IconBox、品牌庫、Arco Pro 最佳實(shí)踐等。旨在幫助設(shè)計(jì)師與開發(fā)者解放雙手、提升工作效率,更高效、高質(zhì)量的打造符合業(yè)務(wù)規(guī)范的中后臺(tái)應(yīng)用。
官網(wǎng):https://arco.design/
項(xiàng)目地址:https://github.com/arco-design/arco-design
現(xiàn)代 Web 開發(fā)框架 Modern.js
Modern.js 脫胎于字節(jié)跳動(dòng) Web Infra 團(tuán)隊(duì)推動(dòng)的前后端一體化的“現(xiàn)代 Web”開發(fā)理念,是以客戶端為中心,前后端一體的現(xiàn)代 Web 開發(fā)框架。該框架能降低軟件應(yīng)用開發(fā)和服務(wù)器端門檻,實(shí)現(xiàn)在同一套程序里一體化開發(fā),在開發(fā)、調(diào)試、運(yùn)行、部署等環(huán)節(jié)做到無服務(wù)器化,讓前端技術(shù)棧的開發(fā)者更容易成為真正的產(chǎn)品開發(fā)者。
官網(wǎng):https://modernjs.dev/
項(xiàng)目地址:https://github.com/modern-js-dev/modern.js
移動(dòng)研發(fā)工具鏈 MBox
MBox 是字節(jié)跳動(dòng)抖音基礎(chǔ)技術(shù)、Client Infra-DevOps 根據(jù)移動(dòng)端研發(fā)出現(xiàn)的現(xiàn)狀與問題,結(jié)合移動(dòng)端研發(fā)工具相關(guān)實(shí)踐經(jīng)驗(yàn),自研的一款面向移動(dòng)端開發(fā)者的研發(fā)工具鏈產(chǎn)品。MBox CLI (Command Line Tool) 已經(jīng)開源啦!現(xiàn)已支持 CocoaPods (iOS) 與 Bundler 項(xiàng)目,后續(xù)將增加更多平臺(tái)支持。通過開源,我們希望更多的開發(fā)者能夠加入到 MBox 的生態(tài)建設(shè)中來,為廣大的移動(dòng)端開發(fā)者帶來一款出色的研發(fā)工具。
項(xiàng)目地址:https://github.com/mboxplus/mbox
一文讀懂字節(jié)跳動(dòng)自研移動(dòng)研發(fā)工具鏈 MBox
微服務(wù)中間件 CloudWeGo
多年來,在億級(jí)流量背后,字節(jié)跳動(dòng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)開發(fā)的技術(shù)底座支撐著龐大的微服務(wù)生態(tài)系統(tǒng),從 2018 年至今,團(tuán)隊(duì)維護(hù)的在線微服務(wù)數(shù)量增長(zhǎng)了近 600%,超過 5 萬。面對(duì)這樣的規(guī)模和增速,提高性能、可擴(kuò)展性和穩(wěn)定性成了構(gòu)建 CloudWeGo 的核心。作為項(xiàng)目維護(hù)方,字節(jié)跳動(dòng)基礎(chǔ)架構(gòu)團(tuán)隊(duì)已推進(jìn)項(xiàng)目以 CloudWeGo 開源庫為主進(jìn)行迭代,未來,團(tuán)隊(duì)將堅(jiān)持內(nèi)外維護(hù)一套代碼,統(tǒng)一迭代演進(jìn),并逐步分享更多內(nèi)部微服務(wù)最佳實(shí)踐。
項(xiàng)目地址:https://github.com/cloudwego
字節(jié)跳動(dòng)正式開源內(nèi)部微服務(wù)中間件 CloudWeGo
Flutter 應(yīng)用內(nèi)調(diào)試工具 UME
字節(jié)跳動(dòng)已有累計(jì)超過 70 款 App 使用了 Flutter 技術(shù),公司內(nèi)有超過 600 位 Flutter 開發(fā)者。在這一數(shù)字背后,有一條完整的 Flutter 基礎(chǔ)設(shè)施鏈路作為支撐。UME 是由字節(jié)跳動(dòng) Flutter Infra 團(tuán)隊(duì)出品的 Flutter 應(yīng)用內(nèi)調(diào)試工具,目的是在脫離 Flutter IDE 與 DevTools 的情況下,提供應(yīng)用內(nèi)的調(diào)試功能。在字節(jié)跳動(dòng),UME 內(nèi)部版已打磨了超一年時(shí)間,服務(wù)了近二十個(gè) App,眾多插件功能廣受開發(fā)者好評(píng)。
項(xiàng)目地址:https://github.com/bytedance/flutter_ume
安全好用的 ORM 框架-GEN
GEN 是一個(gè)基于 GORM 的安全 ORM 框架,其主要通過代碼生成方式實(shí)現(xiàn) GORM 代碼封裝。旨在安全上避免業(yè)務(wù)代碼出現(xiàn) SQL 注入,同時(shí)給研發(fā)帶來最佳用戶體驗(yàn),由字節(jié)跳動(dòng)無恒實(shí)驗(yàn)室與 GORM 作者(https://github.com/jinzhu)聯(lián)合研發(fā)。具有自動(dòng)同步庫表、代碼一鍵生成、字段類型安全、查詢優(yōu)雅返回等特性。
項(xiàng)目地址:https://github.com/go-gorm/gen
無恒實(shí)驗(yàn)室聯(lián)合GORM推出安全好用的ORM框架-GEN
GAN 模型壓縮框架 OMGD
字節(jié)跳動(dòng)技術(shù)團(tuán)隊(duì)在計(jì)算機(jī)視覺頂會(huì) ICCV 2021 上發(fā)表的在線多粒度蒸餾算法(Online Multi-Granularity Distillation,簡(jiǎn)稱 OMGD),專治 GAN 模型體積過大、太費(fèi)算力,目前已經(jīng)開源了代碼 以及 CycleGAN 與 Pix2Pix 的預(yù)訓(xùn)練模型,并且已經(jīng)在抖音等產(chǎn)品上落地。實(shí)驗(yàn)表明,這項(xiàng)技術(shù)可以把 GAN 模型的計(jì)算量最低減少到原來的 1/46、參數(shù)量最低減少到原來的 1/82。
項(xiàng)目地址:https://github.com/bytedance/OMGD
字節(jié)跳動(dòng)開源GAN模型壓縮框架,算力最高節(jié)省97.8%丨ICCV 2021
下期字節(jié)技術(shù)年貨預(yù)告:自研篇
正月初三11:00,不見不散!