祝全天下的開發者朋友,新年職業發展虎嘯風生,新年工資增速如虎添翼,新年愛情運勢虎躍龍驤,新年程式碼事故虎口逃生,虎!虎!虎!
開源“聖經”《大教堂與集市》一書中曾言:任何行業的成功幾乎都直接和這個行業供應商及客戶所享有的自由度相關。而在軟體開發行業,開源是讓技術走向普及、下沉落地的不二法門。開源軟體系統性地利用開放式開發和分散式同行評審,不僅降低了開發成本,還提高了軟體質量。由此,"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
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,不見不散!