騰訊十大最受歡迎的開源項目!
MMKV 原理
內(nèi)存準(zhǔn)備
通過 mmap 內(nèi)存映射文件,提供一段可供隨時寫入的內(nèi)存塊,App 只管往里面寫數(shù)據(jù),由操作系統(tǒng)負(fù)責(zé)將內(nèi)存回寫到文件,不必?fù)?dān)心 crash 導(dǎo)致數(shù)據(jù)丟失。數(shù)據(jù)組織
數(shù)據(jù)序列化方面我們選用 protobuf 協(xié)議,pb 在性能和空間占用上都有不錯的表現(xiàn)。寫入優(yōu)化
考慮到主要使用場景是頻繁地進(jìn)行寫入更新,我們需要有增量更新的能力。我們考慮將增量 kv 對象序列化后,append 到內(nèi)存末尾。空間增長
使用 append 實現(xiàn)增量更新帶來了一個新的問題,就是不斷 append 的話,文件大小會增長得不可控。我們需要在性能和空間上做個折中。
項目地址
開源地址:https://github.com/Tencent/MMKV
APIJSON
APIJSON 是一種專為 API 而生的 JSON 網(wǎng)絡(luò)傳輸協(xié)議 以及 基于這套協(xié)議實現(xiàn)的 ORM 庫。
為 簡單的增刪改查、復(fù)雜的查詢、簡單的事務(wù)操作 提供了完全自動化的萬能 API。
適合中小型前后端分離的項目,尤其是 BaaS、Serverless、互聯(lián)網(wǎng)創(chuàng)業(yè)項目和企業(yè)自用項目。

對于前端
不用再向后端催接口、求文檔
數(shù)據(jù)和結(jié)構(gòu)完全定制,要啥有啥
看請求知結(jié)果,所求即所得
可一次獲取任何數(shù)據(jù)、任何結(jié)構(gòu)
能去除重復(fù)數(shù)據(jù),節(jié)省流量提高速度
對于后端
提供通用接口,大部分 API 不用再寫
自動生成文檔,不用再編寫和維護(hù)
自動校驗權(quán)限、自動管理版本、自動防 SQL 注入
開放 API 無需劃分版本,始終保持兼容
支持增刪改查、模糊搜索、正則匹配、遠(yuǎn)程函數(shù)等
項目地址
github地址:https://github.com/Tencent/APIJSON
跨平臺跨業(yè)務(wù)的終端基礎(chǔ)組件
comm:可以獨立使用的公共庫,包括 socket、線程、消息隊列、協(xié)程等; xlog:高可靠性高性能的運行期日志組件; SDT:網(wǎng)絡(luò)診斷組件; STN:信令分發(fā)網(wǎng)絡(luò)模塊,也是 Mars 最主要的部分。
項目地址
開源地址:https://github.com/Tencent/Mars
高性能神經(jīng)網(wǎng)絡(luò)前向計算框架
ncnn 是一個為手機(jī)端極致優(yōu)化的高性能神經(jīng)網(wǎng)絡(luò)前向計算框架。ncnn 從設(shè)計之初深刻考慮手機(jī)端的部署和使用。無第三方依賴,跨平臺,手機(jī)端 cpu 的速度快于目前所有已知的開源框架。基于 ncnn,開發(fā)者能夠?qū)⑸疃葘W(xué)習(xí)算法輕松移植到手機(jī)端高效執(zhí)行,開發(fā)出人工智能 APP,將 AI 帶到你的指尖。ncnn 目前已在騰訊多款應(yīng)用中使用,如 QQ,Qzone,微信,天天P圖等。
功能概述
支持卷積神經(jīng)網(wǎng)絡(luò),支持多輸入和多分支結(jié)構(gòu),可計算部分分支
無任何第三方庫依賴,不依賴 BLAS/NNPACK 等計算框架
純 C++ 實現(xiàn),跨平臺,支持 android ios 等
ARM NEON 匯編級良心優(yōu)化,計算速度極快
精細(xì)的內(nèi)存管理和數(shù)據(jù)結(jié)構(gòu)設(shè)計,內(nèi)存占用極低
支持多核并行計算加速,ARM big.LITTLE cpu 調(diào)度優(yōu)化
支持基于全新低消耗的 vulkan api GPU 加速
整體庫體積小于 700K,并可輕松精簡到小于 300K
項目地址
Android熱補丁解決方案
gradle編譯插件: tinker-patch-gradle-plugin 核心sdk庫: tinker-android-lib 非gradle編譯用戶的命令行版本: tinker-patch-cli.jar
項目地址
c/c++協(xié)程庫
libco是微信后臺大規(guī)模使用的c/c++協(xié)程庫,2013年至今穩(wěn)定運行在微信后臺的數(shù)萬臺機(jī)器上。
libco通過僅有的幾個函數(shù)接口 co_create/co_resume/co_yield 再配合 co_poll,可以支持同步或者異步的寫法,如線程庫一樣輕松。同時庫里面提供了socket族函數(shù)的hook,使得后臺邏輯服務(wù)幾乎不用修改邏輯代碼就可以完成異步化改造。
libco的特性
無需侵入業(yè)務(wù)邏輯,把多進(jìn)程、多線程服務(wù)改造成協(xié)程服務(wù),并發(fā)能力得到百倍提升; 支持CGI框架,輕松構(gòu)建web服務(wù)(New); 支持gethostbyname、mysqlclient、ssl等常用第三庫(New); 可選的共享棧模式,單機(jī)輕松接入千萬連接(New); 完善簡潔的協(xié)程編程接口 類pthread接口設(shè)計,通過co_create、co_resume等簡單清晰接口即可完成協(xié)程的創(chuàng)建與恢復(fù); __thread的協(xié)程私有變量、協(xié)程間通信的協(xié)程信號量co_signal (New); 語言級別的lambda實現(xiàn),結(jié)合協(xié)程原地編寫并執(zhí)行后臺異步任務(wù) (New); 基于epoll/kqueue實現(xiàn)的小而輕的網(wǎng)絡(luò)框架,基于時間輪盤實現(xiàn)的高性能定時器;
項目地址
開源地址:https://github.com/Tencent/libco
Android插件框架
零反射無Hack實現(xiàn)插件技術(shù):從理論上就已經(jīng)確定無需對任何系統(tǒng)做兼容開發(fā),更無任何隱藏API調(diào)用,和Google限制非公開SDK接口訪問的策略完全不沖突。
項目地址
github地址:https://github.com/Tencent/Shadow
新生的跨端開發(fā)框架
Hippy 是一個新生的跨端開發(fā)框架,目標(biāo)是使開發(fā)者可以只寫一套代碼就直接運行于三個平臺(iOS、Android 和 Web)。Hippy 的設(shè)計是面向傳統(tǒng) Web 開發(fā)者的,特別是之前有過 React Native 和 Vue 的開發(fā)者用起來會更為順手,Hippy 致力于讓前端開發(fā)跨端 App 更加容易。
到目前為止,騰訊內(nèi)已經(jīng)有了27款流行 App 在使用 Hippy 框架,包括手機(jī)QQ、手機(jī)QQ瀏覽器、騰訊視頻App,QQ音樂App等,每日觸達(dá)數(shù)億用戶。
特征
為傳統(tǒng) Web 前端設(shè)計,官方支持
React和Vue兩種主流前端框架。不同的平臺保持了相同的接口。
通過 JS 引擎 binding 模式實現(xiàn)的前終端通訊,具備超強性能。
提供了高性能的可復(fù)用列表。
皆可平滑遷移到 Web 瀏覽器。
完整支持 Flex 的布局引擎。
項目地址
github地址:https://github.com/Tencent/Hippy
小程序支持組件化開發(fā)的框架
特性:
類 Vue 開發(fā)風(fēng)格 支持自定義組件開發(fā) 支持引入 NPM 包 支持 Promise 支持 ES2015+ 特性,如 Async Functions 支持多種編譯器,Less/Sass/Stylus/PostCSS、Babel/Typescript、Pug 支持多種插件處理,文件壓縮,圖片壓縮,內(nèi)容替換等 支持 Sourcemap,ESLint 等 小程序細(xì)節(jié)優(yōu)化,如請求列隊,事件優(yōu)化等
項目地址
物聯(lián)網(wǎng)領(lǐng)域開發(fā)的實時操作系統(tǒng)
TencentOS tiny整體架構(gòu)

TencentOS tiny 主體架構(gòu)圖,從下到上主要包括:
項目地址
推薦閱讀:
不是你需要中臺,而是一名合格的架構(gòu)師(附各大廠中臺建設(shè)PPT)
企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案
論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?
企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!
【中臺實踐】華為大數(shù)據(jù)中臺架構(gòu)分享.pdf
