一文速覽滴滴40+開源項(xiàng)目 !厲害了!

滴滴開源的三年時(shí)間里,在滴滴高級(jí)副總裁、開源委員會(huì)主席章文嵩博士的倡導(dǎo)下,秉持「擁抱開放、合作共贏、創(chuàng)造價(jià)值」的理念。滴滴積極參與業(yè)界的開源項(xiàng)目,并不斷對(duì)外輸出內(nèi)部的優(yōu)秀項(xiàng)目。自2017年6月30日,滴滴首個(gè)開源項(xiàng)目VirtualAPK發(fā)布起,滴滴已發(fā)布了40+個(gè)項(xiàng)目,獲得了 6.3W star,在社區(qū)獲得了良好反響。今天帶大家速覽滴滴的40+開源項(xiàng)目。(按首字母先后排序)
Guide哥推薦可以重點(diǎn)關(guān)注下面這幾個(gè)項(xiàng)目:
Logi-KafkaManager :一站式Apache Kafka集群指標(biāo)監(jiān)控與運(yùn)維管控平臺(tái) DoraemonKit :一款功能齊全的客戶端( iOS 、Android、微信小程序、Flutter )研發(fā)助手,你值得擁有。 Tinyid : Tinyid是用Java開發(fā)的一款分布式id生成系統(tǒng),基于數(shù)據(jù)庫號(hào)段算法實(shí)現(xiàn)。

項(xiàng)目地址:https://github.com/didi/delta
項(xiàng)目地址:https://github.com/didi/dlflow
項(xiàng)目地址:https://github.com/didi/hetsann
項(xiàng)目地址:https://github.com/didi/maskdetection
項(xiàng)目地址:https://github.com/sql-machine-learning/sqlflow

項(xiàng)目地址:https://github.com/didi/ALITA
項(xiàng)目地址:https://github.com/didi/mtmc-vt
項(xiàng)目地址:https://github.com/didi/TrafficIndex

項(xiàng)目地址:https://github.com/didi/booster
項(xiàng)目地址:https://github.com/didi/DDMQ
項(xiàng)目地址:https://github.com/didi/go-spring
4.?
大數(shù)據(jù)

▍ES-Fastloader
ES-Fastloader是一種能夠快速地為海量離線數(shù)據(jù)生成索引的方案,采用了一種Build & Push的機(jī)制,利用Hadoop強(qiáng)大的并行計(jì)算能力,可在1-2小時(shí)內(nèi)極快速構(gòu)建幾十TB級(jí)的數(shù)據(jù),解決海量數(shù)據(jù)構(gòu)建ES時(shí),索引文件構(gòu)建時(shí)效低的問題。
項(xiàng)目地址:https://github.com/didi/ES-Fastloader
▍Levin
Levin是針對(duì)低頻更新、靜態(tài)使用、大規(guī)模數(shù)據(jù)的快速加載解決方案。Levin實(shí)現(xiàn)了一套使用在shm共享內(nèi)存片段上的STL-like容器,高效托管大規(guī)模靜態(tài)數(shù)據(jù),加速大內(nèi)存服務(wù)冷啟動(dòng)和熱加載。具備簡單易用、效率高、性能好、內(nèi)存省的優(yōu)點(diǎn)。
項(xiàng)目地址:https://github.com/didi/levin
5.?
運(yùn)維監(jiān)控

▍Elastic-trib
Elastic-trib是一個(gè)Elasticsearch集群管理命令行工具,用于管理公司內(nèi)部30多個(gè)Elasticsearch集群,方便用于集成到shell腳本及通過命令行終端對(duì)集群進(jìn)行管控。
項(xiàng)目地址:https://github.com/ didi/elastic-trib
▍falcon-log-agent
falcon-log-agent是一個(gè)開源版的日志采集工具,旨在從流式的日志中抓取、統(tǒng)計(jì)日志中的特征信息。獲取的特征信息,與開源版Open-Falcon監(jiān)控系統(tǒng)打通??捎糜跇I(yè)務(wù)指標(biāo)的衡量、也可用于穩(wěn)定性的建設(shè)。
項(xiàng)目地址:https://github.com/didi/falcon-log-agent
▍Kafka-Manager
一站式Apache Kafka集群指標(biāo)監(jiān)控與運(yùn)維管控平臺(tái)。
項(xiàng)目地址:https://github.com/didi/kafka-manager
備注:項(xiàng)目目前已經(jīng)改名為 Logi-KafkaManager
▍Nightingale
夜鶯(Nightingale)是滴滴基礎(chǔ)平臺(tái)聯(lián)合滴滴云研發(fā)和開源的企業(yè)級(jí)監(jiān)控解決方案。旨在滿足云原生時(shí)代企業(yè)級(jí)的監(jiān)控需求。Nightingale 在產(chǎn)品完成度、系統(tǒng)高可用、以及用戶體驗(yàn)方面,達(dá)到了企業(yè)級(jí)的要求,可滿足不同規(guī)模用戶的場(chǎng)景,小到幾臺(tái)機(jī)器,大到數(shù)十萬都可以完美支撐。兼顧云原生和裸金屬,支持應(yīng)用監(jiān)控和系統(tǒng)監(jiān)控,插件機(jī)制靈活,插件豐富完善,具有高度的靈活性和可擴(kuò)展性。
項(xiàng)目地址:https://github.com/didi/nightingale
▍sqt
此進(jìn)程在滴滴云上用于管理機(jī)器上面的其他agent,比如監(jiān)控的agent、安全的agent,管理主要是:安裝、升級(jí)、卸載、查看啟動(dòng)狀態(tài),不做其他事情。省去客戶手工安裝其他agent的工作。
項(xiàng)目地址:https://github.com/didi/sgt
6.?
小程序

▍Chameleon
cml作為真正讓一套代碼運(yùn)行多端的框架,提供標(biāo)準(zhǔn)的 MVVM 模式,統(tǒng)一開發(fā)各類終端。同時(shí),擁有各端獨(dú)立的運(yùn)行時(shí)框架 (runtime)、數(shù)據(jù)管理 (store)、組件庫 (ui)、接口 (api)。此外,cml在跨端能力加強(qiáng)、能力統(tǒng)一、表現(xiàn)一致等方面做了許多工作。
項(xiàng)目地址:https://github.com/didi/chameleon
▍Mpx
Mpx是一款致力于提高小程序開發(fā)體驗(yàn)和開發(fā)效率的增強(qiáng)型小程序框架,通過Mpx,我們能夠高效優(yōu)雅地開發(fā)出具有極致性能的優(yōu)質(zhì)小程序應(yīng)用,并將其輸出到各大小程序平臺(tái)和web平臺(tái)中運(yùn)行。
項(xiàng)目地址:https://github.com/didi/mpx
7.?
移動(dòng)開發(fā)

▍Echo
Echo是一款簡單易用、插件化易擴(kuò)展、大屏顯示和操作的調(diào)試工具,旨在提高移動(dòng)端的研發(fā)調(diào)試效率。基于現(xiàn)有的一些問題和團(tuán)隊(duì)需求,我們開發(fā)了一款桌面端的調(diào)試工具Echo,它可以幫助我們實(shí)時(shí)查看App各類數(shù)據(jù)(網(wǎng)絡(luò)請(qǐng)求、日志、埋點(diǎn)等),也可以無須改動(dòng)代碼快速修改調(diào)試App的UI效果,提高我們的開發(fā)調(diào)試效率。
項(xiàng)目地址:https://github.com/didi/echo
▍DoraemonKit
簡稱DoKit,中文名哆啦A夢(mèng),意味著能夠像哆啦A夢(mèng)一樣提供給他的主人各種各樣的工具。是一款功能齊全的客戶端( iOS 、Android )研發(fā)助手。能夠讓每一個(gè) App 快速接入一些常用的或者你沒有實(shí)現(xiàn)的一些輔助開發(fā)工具、測(cè)試效率工具、視覺輔助工具,而且能夠完美在 Doraemon 面板中接入你已經(jīng)實(shí)現(xiàn)的與業(yè)務(wù)緊密耦合的一些非通用的輔助工具,并搭配我們的dokit平臺(tái),讓功能得到延伸,接入方便,便于擴(kuò)展。
項(xiàng)目地址:https://github.com/didi/DoraemonKit
▍DroidAssist
DroidAssist 是一個(gè)輕量級(jí)的 Android 字節(jié)碼編輯插件,通過在 xml 進(jìn)行簡單的配置即可實(shí)現(xiàn)對(duì) class 文件進(jìn)行動(dòng)態(tài)修改。
項(xiàng)目地址:https://github.com/didichuxing/DroidAssist
▍VirtualAPK
VirtualAPK是滴滴出行自研的一款優(yōu)秀的插件化框架,通過將業(yè)務(wù)模塊插件化,可隨時(shí)更新插件來發(fā)布新功能,具備版本隨時(shí)發(fā)布的能力。該款插件化框架可幫助企業(yè)隨時(shí)通過更新插件的方式來發(fā)布新功能,包括修復(fù)嚴(yán)重Crash或進(jìn)行業(yè)務(wù)“試錯(cuò)”,擁有功能完備、基本無入侵、插件可輕松訪問宿主代碼和資源、高兼容性這四大核心優(yōu)勢(shì)。
項(xiàng)目地址:https://github.com/didi/VirtualAPK
8.?
系統(tǒng)工具

▍Collection
Collection包目標(biāo)是用于替換golang原生的Slice,使用場(chǎng)景是在大量不追求極致性能,追求業(yè)務(wù)開發(fā)效能的場(chǎng)景。Collection包目前支持的元素類型:int, int64, float32, float64, string, struct。
項(xiàng)目地址:https://github.com/didi/collection
▍GateKeeper
GateKeeper 是一個(gè)使用 Go (golang) 編寫的不依賴分布式數(shù)據(jù)庫的 API 網(wǎng)關(guān), 使用它可以高效進(jìn)行服務(wù)代理 以及 在線化服務(wù)配置并且你無需重啟服務(wù)器。
項(xiàng)目地址:https://github.com/didi/gatekeeper
▍Gendry
Gendry是一個(gè)用于輔助操作數(shù)據(jù)庫的Go包。基于go-sql-driver/mysql,它提供了一系列的方法來為你調(diào)用標(biāo)準(zhǔn)庫database/sql中的方法準(zhǔn)備參數(shù)。
項(xiàng)目地址:https://github.com/didi/gendry
▍JuShaTa
JuShaTa是一個(gè)Java容器,提供模塊隔離及模塊熱加載能力。我們提供了一個(gè)類似于Tomcat的Java容器JuShaTa,在JuShaTa容器中每個(gè)SpringBoot服務(wù)都是一個(gè)獨(dú)立的模塊。通過自定義ClassLoader,不同模塊使用不同的ClassLoader進(jìn)行加載,解決jar包沖突;使用Spring Context進(jìn)行上下文隔離,每個(gè)模塊對(duì)應(yīng)一個(gè)Context,解決bean沖突。
項(xiàng)目地址:https://github.com/didi/JuShaTa
▍Kemon
一個(gè)用于macOS內(nèi)核監(jiān)視的基于開源前后回調(diào)的框架。kemon是一個(gè)基于macOS的內(nèi)核監(jiān)控框架,在Windows上內(nèi)核監(jiān)控有很好的基礎(chǔ),但在Mac上還沒有一個(gè)較成熟的hook框架,去跟蹤更多的進(jìn)程內(nèi)核事件的產(chǎn)生。Kemon進(jìn)一步完善,為macOS的內(nèi)核安全性的提高作出應(yīng)有的貢獻(xiàn)。
項(xiàng)目地址:https://github.com/didi/kemon
▍SDS
SDS(即 Service Downgrade System)是一個(gè)輕量級(jí)、簡單、易用的限流、熔斷、降級(jí)系統(tǒng),能讓Java應(yīng)用做到自動(dòng)限流、熔斷和快速恢復(fù),提升應(yīng)用整體的“彈性”?,F(xiàn)在服務(wù)端通過采用流行的微服務(wù)架構(gòu)來應(yīng)對(duì)錯(cuò)綜復(fù)雜的大流量場(chǎng)景,并能在業(yè)務(wù)高速發(fā)展時(shí)仍然能做到較強(qiáng)的快速迭代能力和可擴(kuò)展性。微服務(wù)架構(gòu)并不是將整個(gè)系統(tǒng)變得更簡單,相反,微服務(wù)架構(gòu)的管理難度高于普通的集中式架構(gòu),所以,如何保證系統(tǒng)的每個(gè)節(jié)點(diǎn)在錯(cuò)綜復(fù)雜的環(huán)境下能穩(wěn)定提供服務(wù),需要借助工具來讓服務(wù)節(jié)點(diǎn)能抵擋流量沖擊、熔斷依賴壞點(diǎn)。
項(xiàng)目地址:https://github.com/didi/sds
▍Tinyid
Tinyid是用Java開發(fā)的一款分布式id生成系統(tǒng),基于數(shù)據(jù)庫號(hào)段算法實(shí)現(xiàn),關(guān)于這個(gè)算法可以參考美團(tuán)leaf或者tinyid原理介紹。Tinyid擴(kuò)展了leaf-segment算法,支持了多db(master),同時(shí)提供了java-client(sdk)使id生成本地化,獲得了更好的性能與可用性。Tinyid在滴滴客服部門使用,均通過tinyid-client方式接入,每天生成億級(jí)別的id。
項(xiàng)目地址:https://github.com/didi/tinyid
9.?
前端

▍cube-ui
應(yīng)用Vue構(gòu)建的的出色移動(dòng)端ui庫工具。該技術(shù)擁有質(zhì)量可靠、體驗(yàn)極致、標(biāo)準(zhǔn)規(guī)范和強(qiáng)擴(kuò)展性這四大特點(diǎn),并擁有獨(dú)特的后編譯技術(shù)方案幫助大幅優(yōu)化性能。cube-ui 的目標(biāo)是讓移動(dòng)端的開發(fā)更容易,讓開發(fā)人員更加專注于業(yè)務(wù)邏輯的開發(fā),提升研發(fā)效率。
項(xiàng)目地址:https://github.com/didi/cube-ui
▍di18n
di18n 是一個(gè)自動(dòng)轉(zhuǎn)換、基于配置的前端國際化方案。它能自動(dòng)掃描代碼中的中文文案,將其替換成國際化標(biāo)記;同時(shí)將語言抽取成配置,可以放到服務(wù)端保存及更新。
項(xiàng)目地址:https://github.com/didi/di18n
▍Epage
Epage是一款基于schema的可視化頁面配置工具。由工單系統(tǒng)流程表單場(chǎng)景抽象而來,升級(jí)成為支持跨框架、組件庫渲染、可定制的通用頁面配置工具。常用于流程表單、中后臺(tái)頁面配置。
項(xiàng)目地址:https://github.com/didi/epage
▍Mand Mobile
Mand Mobile提供了30+的實(shí)用組件,能夠滿足移動(dòng)端頁面開發(fā)中的大部分需求。其中的業(yè)務(wù)類組件還針對(duì)金融領(lǐng)域,提取了包括圖表、數(shù)字鍵盤等,從而更好地滿足相關(guān)產(chǎn)品的開發(fā)需要。
項(xiàng)目地址:https://github.com/didi/mand-mobile
▍Mand Mobile-RN
Mand Mobile RN 是 Mand Mobile for React Native 的簡稱。作為 Mand Mobile 系列的React Native 組件庫,在聚焦金融場(chǎng)景的同時(shí),還提供了一些在 RN 項(xiàng)目中特有的組件和解決方案,皆在提升跨端項(xiàng)目的開發(fā)效率和UI體驗(yàn)。
項(xiàng)目地址:https://github.com/didi/mand-mobile-rn
▍Pile.js
使用React構(gòu)建的輕量級(jí)移動(dòng)組件庫。設(shè)計(jì)、前端高效協(xié)同,快速搭建移動(dòng)端組件庫。
項(xiàng)目地址:https://github.com/didi/pile.js
▍Tips
Tips是一個(gè)靜態(tài)文案管理平臺(tái)。用于修改Web頁面的靜態(tài)文案,支持文案國際化,并提供提示信息的UI展示。它的目的是解決前端開發(fā)者頻繁的靜態(tài)文案修改問題,避免因?yàn)楹唵蔚奈陌感薷亩l(fā)起復(fù)雜的上線流程。
項(xiàng)目地址:https://github.com/didi/Tips
10.?
研發(fā)測(cè)試

▍benchmark-thrift
benchmark-thrift是一款測(cè)試Thrift應(yīng)用程序性能的工具,開箱即用,高效簡單。
項(xiàng)目地址:https://github.com/didi/benchmark-thrift
▍Rdebug
Rdebug 是滴滴開源的一款用于 RD 研發(fā)、自測(cè)、調(diào)試的實(shí)用工具,可以被用來提升 RD 研發(fā)效率、保障代碼質(zhì)量進(jìn)而減少線上事故。
項(xiàng)目地址:https://github.com/didi/rdebug
▍Sharingan
Sharingan是一個(gè)基于golang的流量錄制回放工具,錄制線上真實(shí)請(qǐng)求流量進(jìn)行回放測(cè)試,適合項(xiàng)目重構(gòu)、回歸測(cè)試等。隨著微服務(wù)架構(gòu)的興起,服務(wù)之間的依賴關(guān)系變的越來越復(fù)雜,系統(tǒng)升級(jí)頻繁導(dǎo)致維護(hù)測(cè)試用例成本高,依賴下游眾多也很難提供穩(wěn)定的測(cè)試環(huán)境,為此,我們開發(fā)這套工具來緩解上述問題。
項(xiàng)目地址:https://github.com/didi/sharingan
▍thrift-mock
thrift-mock是一款輕量級(jí)的Java測(cè)試工具,用來模擬thrift服務(wù)。通過它可以輕松的將依賴的thrift服務(wù)接口進(jìn)行mock,獲得指定的接口返回,從而極大的提升了聯(lián)調(diào)、測(cè)試階段的開發(fā)效率。
項(xiàng)目地址:https://github.com/didi/thrift-mock
推薦??: ?Github掘金計(jì)劃:Github上的一些優(yōu)質(zhì)項(xiàng)目搜羅
推薦??:V4.0 《JavaGuide 面試突擊版》來啦!年初搞波大的
