盘点大厂的那些开源项目 - 小米科技
小米是一家以手机、智能硬件和IoT平台为核心的互联网公司,以智能手机、智能电视、笔记本等丰富的产品与服务。致力于让全球每个人都能享受科技带来的美好生活。
“为发烧而生”是小米的产品概念。“让每个人都能享受科技的乐趣”是小米公司的愿景。小米公司应用了互联网开发模式开发产品的模式,用极客精神做产品,用互联网模式干掉中间环节,致力让全球每个人,都能享用来自中国的优质科技产品。
Github主页: https://github.com/xiaomi
HuUI
分类:前端组件库
开发语言: JavaScript
HIUI是一个面向中后台系统的前端组件库,可以帮助开发人员快速实现交互一致,界面美观的界面。
特征
- 高度降低用户对交互成本和交互可预测性的了解
- 建立出色的虚拟风格,并获得典型场景的虚拟设计和界面规范
- 在OA,仓储和售后系统,BI系统以及公司中间站项目中具有高度完善的设计经验
Stars: 351
Github: https://github.com/XiaoMi/hiui
MACE
分类: 神经网络计算框架
开发语言:C++,Python
Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算设备优化的深度学习前向预测框架。 MACE覆盖了常见的移动端计算设备(CPU、GPU、Hexagon DSP、Hexagon HTA、MTK APU),并且提供了完整的工具链和文档,用户借助MACE能够 很方便地在移动端部署深度学习模型。MACE已经在小米内部广泛使用并且被充分验证具有业界领先的性能和稳定性。
Stars: 4.3k
Github: https://github.com/XiaoMi/mace
SOAR
分类: SQL自动化工具
开发语言: GO
SOAR(SQL Optimizer And Rewriter) 是一个对 SQL 进行优化和改写的自动化工具。 由小米人工智能与云平台的数据库团队开发与维护。
功能特点
- 跨平台支持(支持 Linux, Mac 环境,Windows 环境理论上也支持,不过未全面测试)
- 目前只支持 MySQL 语法族协议的 SQL 优化
- 支持基于启发式算法的语句优化
- 支持复杂查询的多列索引优化(UPDATE, INSERT, DELETE, SELECT)
- 支持 EXPLAIN 信息丰富解读
- 支持 SQL 指纹、压缩和美化
- 支持同一张表多条 ALTER 请求合并
- 支持自定义规则的 SQL 改写
Stars: 6.9k
Github: https://github.com/XiaoMi/soar
Gaea
分类: 数据库中间件
开发语言:GO
Gaea是小米中国区电商研发部研发的基于mysql协议的数据库中间件,目前在小米商城大陆和海外得到广泛使用,包括订单、社区、活动等多个业务。Gaea支持分库分表、sql路由、读写分离等基本特性,更多详细功能可以参照下面的功能列表。其中分库分表方案兼容了mycat和kingshard两个项目的路由方式。Gaea在设计、实现阶段参照了mycat、kingshard和vitess,并使用tidb parser作为内置的sql parser。
基础功能
- 多集群
- 多租户
- SQL透明转发
- 慢SQL指纹
- 错误SQL指纹
- 注解路由
- 慢日志
- 读写分离,从库负载均衡
- 自定义SQL拦截与过滤
- 连接池
- 配置热加载
- IP/IP段白名单
- 全局序列号
分库、分表功能 - 分库: 支持mycat分库方式
- 分表: 支持kingshard分表方式
- 聚合函数: 支持max、min、sum、count、group by、order by等
- join: 支持分片表和全局表的join、支持多个分片表但是路由规则相同的join
Stars: 1.8k
Github: https://github.com/XiaoMi/Gaea
MiNLP
分类:自然语言处理工具
开发语言:Python
小米自然语言处理平台(MiNLP)具备词法、句法、语义分析等数十个功能模块,已经在公司业务中得到了广泛应用。
MiNLP-Tokenizer中文分词工具经过不断优化和实战打磨,已于2020年11月正式对外开源。
Stars: 634
Github: https://github.com/XiaoMi/MiNLP
Chronos
分类:时间处理工具
开发语言:Java
Chronos,在古希腊语意为时间,是实现高可用、高性能、提供全局唯一而且严格单调递增timestamp的服务。
Chronos采用主备架构,主服务器挂了以后备服务器迅速感知并接替服务,从而实现系统的高可用。服务端使用Thrift框架,经测试每秒可处理约60万次RPC请求,客户端单线程每秒可请求6万次(本地服务器),保证高性能与低延时。全局只有唯一的ChronosServer提供服务,分配的timestamp保证严格单调递增,并且将已分配的值持久化到ZooKeeper上,即使发生failover也能保证服务的正确性。
Stars: 380
Github: https://github.com/XiaoMi/chronos
Naftis
分类:Istio 面板
开发语言:GO
Naftis 是一个基于 web 的 Istio dashboard,通过任务模板的方式来帮助用户更方便地执行 Istio 任务。 用户可以在 Naftis 中定义自己的任务模板,并填充变量来构造单个或多个构造任务实例,从而完成各种服务治理功能。
功能特性
- 内部集成了一些常用 dashboard
- 可定制的任务模板支持
- 支持回滚指定任务
- 支持指定根服务节点的服务拓扑图
- 提供查看 Istio 的 Services 和 Pod 的支持
- 开箱即用,通过 Kubectl 相关指令即可快速部署
- 支持 Istio 1.0
Stars: 1.8k
Github: https://github.com/XiaoMi/naftis
最后
欢迎扫码关注我们的公众号 【全球技术精选】,专注国外优秀博客的翻译和开源项目分享,也可以添加QQ群 897216102