開源中國(OSCHINA)是目前國內為數不多深耕於圍繞“開源/自由軟體”為開發者分享開源業內事、傳播開源價值觀的平臺。為了更好地展示國內開源現狀,探討國內開源趨勢,激勵國內開源人才,促進國內開源生態完善,開源中國每年會在年底舉辦一年一度的最受歡迎中國開源軟體評選活動,該活動目前已成功舉辦五屆。
由於對參選專案設定了分類競爭,可以看到今年獲得年度最受歡迎中國開源軟體的專案更加多元化,涵蓋了基礎軟體、開發框架和基礎元件、開發工具與應用軟體等領域,下邊來看看每一個獲獎專案。
基於引數伺服器理念的機器學習框架——Angel
Angel 是一個基於引數伺服器(Parameter Server)理念開發的高效能分散式機器學習平臺,它基於騰訊內部的海量資料進行了反覆的調優,並具有廣泛的適用性和穩定性,模型維度越高,優勢越明顯。
Angel 的核心設計理念圍繞模型。它將高維度的大模型合理切分到多個引數伺服器節點,並通過高效的模型更新介面和運算函式,以及靈活的同步協議,輕鬆實現各種高效的機器學習演算法。
企業級的 UI 設計語言和 React 實現——Ant Design
Ant Design 是一套企業級前端設計語言和基於 React 的前端框架實現。
分散式 RPC 服務框架——Apache Dubbo
Apache Dubbo 是阿里開源的一款高效能 RPC 框架,特性包括基於透明介面的 RPC、智慧負載均衡、自動服務註冊和發現、可擴充套件性高、執行時流量路由與視覺化的服務治理。
時序資料管理引擎——Apache IoTDB
Apache IoTDB 是針對時間序列資料收集、儲存與分析一體化的資料管理引擎。它具有體量輕、效能高、易使用的特點,完美對接 Hadoop 與 Spark 生態,適用於工業物聯網應用中海量時間序列資料高速寫入和複雜分析查詢的需求。
訊息中介軟體——Apache RocketMQ
RocketMQ 是一款分散式訊息系統,基於高可用分散式叢集技術,提供低延時的、高可靠的訊息釋出與訂閱服務。同時,廣泛應用於多個領域,包括非同步通訊解耦、企業解決方案、金融支付、電信、電子商務、快遞物流、廣告營銷、社交、即時通訊、移動應用、手遊、視訊、物聯網與車聯網等。
Java 診斷工具——Arthas
Arthas(阿爾薩斯)是一個 Java 診斷工具,可以用於解決一系列開發問題,包括:
這個類從哪個 jar 包載入的?為什麼會報各種類相關的 Exception?我改的程式碼為什麼沒有執行到?難道是我沒 commit?分支搞錯了?遇到問題無法在線上 debug,難道只能通過加日誌再重新發布嗎?線上遇到某個使用者的資料處理有問題,但線上同樣無法 debug,線下無法重現!是否有一個全域性視角來檢視系統的執行狀況?有什麼辦法可以監控到JVM的實時執行狀態?怎麼快速定位應用的熱點,生成火焰圖?後臺整合解決方案——avue
Avue.js 是基於現有的 element-ui 庫進行的二次封裝,從而簡化一些繁瑣的操作,核心理念為資料驅動檢視,主要的元件庫針對 table 表格和 form 表單場景,同時衍生出更多企業常用的元件,達到高複用,容易維護和擴充套件的框架,同時內建了豐富了資料展示元件,讓開發變得更加容易。
開源 GUI 引擎——AWTK
AWTK 全稱為 Toolkit AnyWhere,是一套基於 C 語言開發的 GUI 框架。旨在提供一個功能強大、高效可靠、簡單易用、可輕鬆做出炫酷效果的 GUI 引擎,並支援跨平臺同步開發,一次程式設計,終生使用。
研發運營一體化開源專案——BlueKing
BlueKing(藍鯨)是一套基於 PaaS 的技術解決方案,提供了完善的前後臺開發框架、排程引擎與公共元件等模組,可以幫助業務的產品和技術人員快速構建低成本、免運維的支撐工具和運營系統。
視覺化服務平臺——Davinci
Davinci 是一個 DVAAS(Data Visualization as a Service)平臺解決方案,面向業務人員/資料工程師/資料分析師/資料科學家,致力於提供一站式資料視覺化解決方案。既可作為公有云/私有云獨立部署使用,也可作為視覺化外掛整合到三方系統。使用者只需在視覺化 UI 上簡單配置即可服務多種資料視覺化應用,並支援高階互動/行業分析/模式探索/社交智慧等視覺化功能。
深度作業系統——Deepin
深度作業系統(Deepin)包含深度桌面環境(Deepin Desktop Environment)和近 30 款深度原創精品應用,及數款來自開源社群的應用軟體,廣泛用於支撐使用者日常的學習和工作。另外,通過深度商店還能夠獲得近千款應用軟體的支援,滿足使用者對作業系統的更多應用場景的特定需求。
深度作業系統不僅長期保持活躍,還面向全球使用者釋出。深度作業系統採用滾動更新方式,每個月線上釋出必要的功能和 bug 更新,每 3 個月進行一次可累積釋出 ISO 的大更新。並使用新功能和效能優化交替進行的更新方式,保障深度作業系統不僅在美觀和易用方面不斷進步,在穩定和流暢方面也同樣不斷得帶改善和優化。而無論是更新還是版本釋出,深度作業系統都提供 32 種不同語言的版本,用於更新和升級的映象站也遍佈全球六大洲 33 個國家 100 多個站點。
JavaScript 圖表庫——ECharts
ECharts 是一款基於 JavaScript 的資料視覺化圖表庫,提供直觀、生動、可互動、可個性化定製的資料視覺化圖表。
基於 Vue 2.0 的元件庫——Element
Element 是一套為開發者、設計師和產品經理準備的基於 Vue 2.0 的桌面端元件庫,提供了配套設計資源,幫助開發者的網站快速成型。
Java 實現的 JSON 解析器和生成器——fastjson
fastjson 是一個性能很好的 JSON 解析器和生成器,
主要特點:
快速強大,支援普通 JDK 類,包括任意 Java Bean Class、Collection、Map、Date 與 enum零依賴簡潔的後臺管理系統——Guns
Guns 是一個基於 Spring Boot 的後臺管理系統,專案程式碼簡潔、註釋豐富、上手容易,同時包含許多基礎模組,可以直接作為一個後臺管理系統的腳手架。
Java 工具集——Hutool
Hutool 是一個 Java 工具集,針對專案中 util 包進行開刀,抽象大量的工具方法,旨在減少專案中工具類的數量,將開發者的編碼工作專注在業務上。Hutool 對檔案、流、加密解密、轉碼、正則、執行緒、XML、日期、Http 客戶端等 JDK 方法進行封裝,組成各種 Util 工具類。
企業級 PHP 協程框架——Hyperf
Hyperf 是基於 Swoole 4.4+ 實現的高效能、高靈活性 PHP 協程框架,內建協程伺服器及大量常用的元件,效能較傳統基於 PHP-FPM 的框架有質的提升,提供超高效能的同時,也保持著極其靈活的可擴充套件性,標準組件均基於 PSR 標準 實現,基於強大的依賴注入設計,保證了絕大部分元件或類都是可替換與可複用的。
敏捷測試管理軟體——itest(愛測試)
itest 是一款敏捷測試管理軟體,旨在打造最懂測試人的開源測試管理軟體。
基於程式碼生成器的 J2EE 開發平臺——Jeecg-Boot
Jeecg-Boot 是一款基於程式碼生成器的 J2EE 快速開發平臺,採用前後端分離架構,強大的程式碼生成器讓前後端程式碼一鍵生成,無需寫任何程式碼。Jeecg-Boot 引領新的開發模式(Online Coding 模式-> 程式碼生成器模式-> 手工 MERGE 智慧開發), 幫助解決 Java 專案 70% 的重複工作,讓開發更多關注業務邏輯。
低程式碼快速開發平臺——JEPaaS
JEPaaS 是一款低程式碼快速開發平臺,視覺化的開發環境,低程式碼拖拽式配置開發,操作極其簡單,可以大幅度幫助企業縮減人力和時間成本。支援工作流、IM 即時通訊、bi 圖表報表、APP 開發、對接微信、釘釘等。
自動化測試平臺——LuckyFrameWeb
LuckyFrameWeb 是一款自動化測試平臺,最大的特點是全緯度覆蓋了介面自動化、WEB UI 自動化與 APP 自動化,並且支援分散式測試、測試關鍵字驅動,同時集成了品質管理相關的一些功能。
Mybatis 增強工具包——Mybatis-Plus
MyBatis-Plus 是 Mybatis 的增強工具包,可以簡化 CRUD 操作。啟動載入 XML 配置時注入單表 SQL 操作 ,為簡化開發工作、提高生產率而生。
面向雲的分散式訊息領域標準——OpenMessaging
OpenMessaging 旨在創立廠商無關、平臺無關的分散式訊息及流處理領域的應用開發標準。除了做到可以連結跨平臺、跨語言、跨產品和跨雲的標準之外,OpenMessaging 將提供 Cloud Native 的能力,面向雲端計算、混合雲架構,實現多雲平臺無縫遷移,致力於提供金融、電子商務、IoT 及大資料等領域的一站式解決方案。
若依許可權管理系統——RuoYi
RuoYi 是一個基於 Spring Boot 的許可權管理系統,易讀易懂、介面簡潔美觀。 核心技術採用Spring、MyBatis 與 Shiro,沒有任何其它重度依賴。可以用於所有的 Web 應用程式,如網站管理後臺、網站會員中心、CMS、CRM 與 OA。所有前端後臺程式碼封裝過後十分精簡易上手,出錯概率低。同時支援移動客戶端訪問。
B2C 商城系統——ShopXO
SaaS 微服務開發平臺——SpringBlade
SpringBlade 是一個微服務開發平臺,特點包括:
整合 Sentinel 從流量控制、熔斷降級、系統負載等多個維度保護服務的穩定性。註冊中心、配置中心選型 Nacos,為工程瘦身的同時加強各模組之間的聯動。使用 Traefik 進行反向代理,監聽後臺變化自動化應用新的配置檔案。極簡封裝了多租戶底層,用更少的程式碼換來拓展性更強的 SaaS 多租戶系統。輕量級 PHP 開發框架——ThinkPHP
ThinkPHP 是一個快速、簡單的輕量級 PHP 開發框架,ThinkPHP 從誕生以來一直秉承簡潔實用的設計原則,在保持出色的效能和至簡的程式碼的同時,也注重易用性,同時擁有眾多的原創功能和特性。
基於 Vue.js 的跨平臺框架——uni-app
uni-app 是一個使用 Vue.js 開發的跨平臺應用前端框架。開發者通過編寫 Vue.js 程式碼,uni-app 將其編譯到 iOS、Android、微信小程式與 H5 等多個平臺,保證其正確執行並達到優秀體驗。
漸進式 JavaScript 框架——Vue.js
Vue.js 是一套構建使用者介面的漸進式框架,與其它重量級框架不同的是,Vue 採用自底向上增量開發的設計。Vue 的核心庫只關注檢視層,它不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與單檔案元件和 Vue 生態系統支援的庫結合使用時,Vue 也完全能夠為複雜的單頁應用程式提供驅動。
開源 IaaS 軟體——ZStack
ZStack 是全新的 IaaS 軟體,它的誕生是為了解決困繞 IaaS 軟體的幾大難題:複雜度、穩定性、可伸縮性和靈活性。ZStack 已經提供了大部分 IaaS 的基本功能,包括:虛擬機器管理、儲存卷管理、儲存卷快照與各種網路服務(DHCP、DNS、SNAT、EIP、PortForward 以及 Security Group)。