一文速览滴滴40+开源项目 !厉害了!
点击上方 蓝字 关注我们!
Java,Python,C/C++,Linux,PHP,Go,C#,QT,大数据,算法,软件教程,前端,简历,毕业设计等分类,资源在不断更新中... 点击领取!
滴滴开源的三年时间里,在滴滴高级副总裁、开源委员会主席章文嵩博士的倡导下,秉持「拥抱开放、合作共赢、创造价值」的理念。滴滴积极参与业界的开源项目,并不断对外输出内部的优秀项目。自2017年6月30日,滴滴首个开源项目VirtualAPK发布起,滴滴已发布了40+个项目,获得了 6.3W star,在社区获得了良好反响。今天带大家速览滴滴的40+开源项目。(按首字母先后排序)
Guide哥推荐可以重点关注下面这几个项目:
Logi-KafkaManager :一站式Apache Kafka集群指标监控与运维管控平台 DoraemonKit :一款功能齐全的客户端( iOS 、Android、微信小程序、Flutter )研发助手,你值得拥有。 Tinyid : Tinyid是用Java开发的一款分布式id生成系统,基于数据库号段算法实现。
项目地址:https://github.com/didi/delta
项目地址:https://github.com/didi/dlflow
项目地址:https://github.com/didi/hetsann
项目地址:https://github.com/didi/maskdetection
项目地址:https://github.com/sql-machine-learning/sqlflow
项目地址:https://github.com/didi/ALITA
项目地址:https://github.com/didi/mtmc-vt
项目地址:https://github.com/didi/TrafficIndex
项目地址:https://github.com/didi/booster
项目地址:https://github.com/didi/DDMQ
项目地址:https://github.com/didi/go-spring
4.
大数据
▍ES-Fastloader
ES-Fastloader是一种能够快速地为海量离线数据生成索引的方案,采用了一种Build & Push的机制,利用Hadoop强大的并行计算能力,可在1-2小时内极快速构建几十TB级的数据,解决海量数据构建ES时,索引文件构建时效低的问题。
项目地址:https://github.com/didi/ES-Fastloader
▍Levin
Levin是针对低频更新、静态使用、大规模数据的快速加载解决方案。Levin实现了一套使用在shm共享内存片段上的STL-like容器,高效托管大规模静态数据,加速大内存服务冷启动和热加载。具备简单易用、效率高、性能好、内存省的优点。
项目地址:https://github.com/didi/levin
5.
运维监控
▍Elastic-trib
Elastic-trib是一个Elasticsearch集群管理命令行工具,用于管理公司内部30多个Elasticsearch集群,方便用于集成到shell脚本及通过命令行终端对集群进行管控。
项目地址:https://github.com/ didi/elastic-trib
▍falcon-log-agent
falcon-log-agent是一个开源版的日志采集工具,旨在从流式的日志中抓取、统计日志中的特征信息。获取的特征信息,与开源版Open-Falcon监控系统打通。可用于业务指标的衡量、也可用于稳定性的建设。
项目地址:https://github.com/didi/falcon-log-agent
▍Kafka-Manager
一站式Apache Kafka集群指标监控与运维管控平台。
项目地址:https://github.com/didi/kafka-manager
备注:项目目前已经改名为 Logi-KafkaManager
▍Nightingale
夜莺(Nightingale)是滴滴基础平台联合滴滴云研发和开源的企业级监控解决方案。旨在满足云原生时代企业级的监控需求。Nightingale 在产品完成度、系统高可用、以及用户体验方面,达到了企业级的要求,可满足不同规模用户的场景,小到几台机器,大到数十万都可以完美支撑。兼顾云原生和裸金属,支持应用监控和系统监控,插件机制灵活,插件丰富完善,具有高度的灵活性和可扩展性。
项目地址:https://github.com/didi/nightingale
▍sqt
此进程在滴滴云上用于管理机器上面的其他agent,比如监控的agent、安全的agent,管理主要是:安装、升级、卸载、查看启动状态,不做其他事情。省去客户手工安装其他agent的工作。
项目地址:https://github.com/didi/sgt
6.
小程序
▍Chameleon
cml作为真正让一套代码运行多端的框架,提供标准的 MVVM 模式,统一开发各类终端。同时,拥有各端独立的运行时框架 (runtime)、数据管理 (store)、组件库 (ui)、接口 (api)。此外,cml在跨端能力加强、能力统一、表现一致等方面做了许多工作。
项目地址:https://github.com/didi/chameleon
▍Mpx
Mpx是一款致力于提高小程序开发体验和开发效率的增强型小程序框架,通过Mpx,我们能够高效优雅地开发出具有极致性能的优质小程序应用,并将其输出到各大小程序平台和web平台中运行。
项目地址:https://github.com/didi/mpx
7.
移动开发
▍Echo
Echo是一款简单易用、插件化易扩展、大屏显示和操作的调试工具,旨在提高移动端的研发调试效率。基于现有的一些问题和团队需求,我们开发了一款桌面端的调试工具Echo,它可以帮助我们实时查看App各类数据(网络请求、日志、埋点等),也可以无须改动代码快速修改调试App的UI效果,提高我们的开发调试效率。
项目地址:https://github.com/didi/echo
▍DoraemonKit
简称DoKit,中文名哆啦A梦,意味着能够像哆啦A梦一样提供给他的主人各种各样的工具。是一款功能齐全的客户端( iOS 、Android )研发助手。能够让每一个 App 快速接入一些常用的或者你没有实现的一些辅助开发工具、测试效率工具、视觉辅助工具,而且能够完美在 Doraemon 面板中接入你已经实现的与业务紧密耦合的一些非通用的辅助工具,并搭配我们的dokit平台,让功能得到延伸,接入方便,便于扩展。
项目地址:https://github.com/didi/DoraemonKit
▍DroidAssist
DroidAssist 是一个轻量级的 Android 字节码编辑插件,通过在 xml 进行简单的配置即可实现对 class 文件进行动态修改。
项目地址:https://github.com/didichuxing/DroidAssist
▍VirtualAPK
VirtualAPK是滴滴出行自研的一款优秀的插件化框架,通过将业务模块插件化,可随时更新插件来发布新功能,具备版本随时发布的能力。该款插件化框架可帮助企业随时通过更新插件的方式来发布新功能,包括修复严重Crash或进行业务“试错”,拥有功能完备、基本无入侵、插件可轻松访问宿主代码和资源、高兼容性这四大核心优势。
项目地址:https://github.com/didi/VirtualAPK
8.
系统工具
▍Collection
Collection包目标是用于替换golang原生的Slice,使用场景是在大量不追求极致性能,追求业务开发效能的场景。Collection包目前支持的元素类型:int, int64, float32, float64, string, struct。
项目地址:https://github.com/didi/collection
▍GateKeeper
GateKeeper 是一个使用 Go (golang) 编写的不依赖分布式数据库的 API 网关, 使用它可以高效进行服务代理 以及 在线化服务配置并且你无需重启服务器。
项目地址:https://github.com/didi/gatekeeper
▍Gendry
Gendry是一个用于辅助操作数据库的Go包。基于go-sql-driver/mysql,它提供了一系列的方法来为你调用标准库database/sql中的方法准备参数。
项目地址:https://github.com/didi/gendry
▍JuShaTa
JuShaTa是一个Java容器,提供模块隔离及模块热加载能力。我们提供了一个类似于Tomcat的Java容器JuShaTa,在JuShaTa容器中每个SpringBoot服务都是一个独立的模块。通过自定义ClassLoader,不同模块使用不同的ClassLoader进行加载,解决jar包冲突;使用Spring Context进行上下文隔离,每个模块对应一个Context,解决bean冲突。
项目地址:https://github.com/didi/JuShaTa
▍Kemon
一个用于macOS内核监视的基于开源前后回调的框架。kemon是一个基于macOS的内核监控框架,在Windows上内核监控有很好的基础,但在Mac上还没有一个较成熟的hook框架,去跟踪更多的进程内核事件的产生。Kemon进一步完善,为macOS的内核安全性的提高作出应有的贡献。
项目地址:https://github.com/didi/kemon
▍SDS
SDS(即 Service Downgrade System)是一个轻量级、简单、易用的限流、熔断、降级系统,能让Java应用做到自动限流、熔断和快速恢复,提升应用整体的“弹性”。现在服务端通过采用流行的微服务架构来应对错综复杂的大流量场景,并能在业务高速发展时仍然能做到较强的快速迭代能力和可扩展性。微服务架构并不是将整个系统变得更简单,相反,微服务架构的管理难度高于普通的集中式架构,所以,如何保证系统的每个节点在错综复杂的环境下能稳定提供服务,需要借助工具来让服务节点能抵挡流量冲击、熔断依赖坏点。
项目地址:https://github.com/didi/sds
▍Tinyid
Tinyid是用Java开发的一款分布式id生成系统,基于数据库号段算法实现,关于这个算法可以参考美团leaf或者tinyid原理介绍。Tinyid扩展了leaf-segment算法,支持了多db(master),同时提供了java-client(sdk)使id生成本地化,获得了更好的性能与可用性。Tinyid在滴滴客服部门使用,均通过tinyid-client方式接入,每天生成亿级别的id。
项目地址:https://github.com/didi/tinyid
9.
前端
▍cube-ui
应用Vue构建的的出色移动端ui库工具。该技术拥有质量可靠、体验极致、标准规范和强扩展性这四大特点,并拥有独特的后编译技术方案帮助大幅优化性能。cube-ui 的目标是让移动端的开发更容易,让开发人员更加专注于业务逻辑的开发,提升研发效率。
项目地址:https://github.com/didi/cube-ui
▍di18n
di18n 是一个自动转换、基于配置的前端国际化方案。它能自动扫描代码中的中文文案,将其替换成国际化标记;同时将语言抽取成配置,可以放到服务端保存及更新。
项目地址:https://github.com/didi/di18n
▍Epage
Epage是一款基于schema的可视化页面配置工具。由工单系统流程表单场景抽象而来,升级成为支持跨框架、组件库渲染、可定制的通用页面配置工具。常用于流程表单、中后台页面配置。
项目地址:https://github.com/didi/epage
▍Mand Mobile
Mand Mobile提供了30+的实用组件,能够满足移动端页面开发中的大部分需求。其中的业务类组件还针对金融领域,提取了包括图表、数字键盘等,从而更好地满足相关产品的开发需要。
项目地址:https://github.com/didi/mand-mobile
▍Mand Mobile-RN
Mand Mobile RN 是 Mand Mobile for React Native 的简称。作为 Mand Mobile 系列的React Native 组件库,在聚焦金融场景的同时,还提供了一些在 RN 项目中特有的组件和解决方案,皆在提升跨端项目的开发效率和UI体验。
项目地址:https://github.com/didi/mand-mobile-rn
▍Pile.js
使用React构建的轻量级移动组件库。设计、前端高效协同,快速搭建移动端组件库。
项目地址:https://github.com/didi/pile.js
▍Tips
Tips是一个静态文案管理平台。用于修改Web页面的静态文案,支持文案国际化,并提供提示信息的UI展示。它的目的是解决前端开发者频繁的静态文案修改问题,避免因为简单的文案修改而发起复杂的上线流程。
项目地址:https://github.com/didi/Tips
10.
研发测试
▍benchmark-thrift
benchmark-thrift是一款测试Thrift应用程序性能的工具,开箱即用,高效简单。
项目地址:https://github.com/didi/benchmark-thrift
▍Rdebug
Rdebug 是滴滴开源的一款用于 RD 研发、自测、调试的实用工具,可以被用来提升 RD 研发效率、保障代码质量进而减少线上事故。
项目地址:https://github.com/didi/rdebug
▍Sharingan
Sharingan是一个基于golang的流量录制回放工具,录制线上真实请求流量进行回放测试,适合项目重构、回归测试等。随着微服务架构的兴起,服务之间的依赖关系变的越来越复杂,系统升级频繁导致维护测试用例成本高,依赖下游众多也很难提供稳定的测试环境,为此,我们开发这套工具来缓解上述问题。
项目地址:https://github.com/didi/sharingan
▍thrift-mock
thrift-mock是一款轻量级的Java测试工具,用来模拟thrift服务。通过它可以轻松的将依赖的thrift服务接口进行mock,获得指定的接口返回,从而极大的提升了联调、测试阶段的开发效率。
项目地址:https://github.com/didi/thrift-mock
往期推荐
END
若觉得文章对你有帮助,随手转发分享,也是我们继续更新的动力。
长按二维码,扫扫关注哦
✬「C语言中文网」官方公众号,关注手机阅读教程 ✬
目前收集的资料包括: Java,Python,C/C++,Linux,PHP,go,C#,QT,git/svn,人工智能,大数据,单片机,算法,小程序,易语言,安卓,ios,PPT,软件教程,前端,软件测试,简历,毕业设计,公开课 等分类,资源在不断更新中...