盤點大廠的那些開源專案 - 小米科技

SpringLeee 發表於 2021-01-26

小米是一家以手機、智慧硬體和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

盤點大廠的那些開源專案 - 小米科技