InfoWorld 公布了 2020 年最佳開源軟體榜單。
InfoWorld 是致力於引領 IT 決策者走在科技前沿的國際科技媒體品牌,每年 InfoWorld 都會根據軟體對開源界的貢獻,以及在業界的影響力評選出當年的「最佳開源軟體」 (InfoWorld's Best of Open Source Software Awards, Bossies),該獎項評選已經延續了十多年。
獲獎的 25 個開源項目包含用於構建 Web 應用的工具、機器學習模型、數據可視化工具、工作流、資料庫和數據分析工具等。
下邊來看看每一個項目(點擊每個項目名可跳轉進入項目介紹頁面)。
Hasura GraphQL Engine 是一個超快的 GraphQL 伺服器,可以讓你基於 PostgreSQL 資料庫快速建立 GraphQL API 服務。通過資料庫事件實現 webhook triggers ,其 remote schemas 用於構建業務邏輯。
Prisma 被認為是一款對 TypeScript 開發者友好的 ORM 框架,包括 SQL 查詢自動補全功能,可用於快速構建 GraphQL 服務、REST API 和資料庫服務等。
已支持 MySQL, PostgreSQL, MongoDB 和 SQLite 等資料庫,其他流行資料庫正在開發中
客戶端已支持 JavaScript, TypeScript, Flow, Go 等語言
類型安全的資料庫訪問,包括過濾器、聚合、分頁和事務
資料庫的實時事件系統以獲得有關資料庫事件的通知
具有簡單 SDL 語法的聲明性數據建模和遷移
InfoWorld 對 Jekyll 的評價是「最好的靜態站點生成器之一」。Jekyll 無需數據支持,可以將內容打包為單個網頁的集合,然後推送到 CDN。Jekyll 所做的工作雖然只是將文本放入模板並生成靜態內容,正因如此,用戶獲得了模板所帶來的靈活性以及存儲靜態文件的良好速度。
Gatsby 是基於 React 構建的靜態站點生成器,擁有豐富的插件生態,其主要目標之一是交付訪問速度快速的網頁,它通過利用良好的緩存、靜態頁面生成和基於邊緣的 CDN 數據源來實現這一目標。所以 Gatsby 聲稱自己比其他的靜態站點生成器快 2.5 倍。InfoWorld 對 Gatsby 的評價是既優雅又快速。
Drupal 是用 PHP 編寫的內容管理系統。業界通常將 Drupal 視為內容管理框架 (CMF),而非一般意義上的內容管理系統 (CMS)。它最令人深刻的特點是其「模塊」哲學,這種思想降低了向核心添加功能的難度,並且配合適當的組件使用,還可以創建各種類型的網站。
當前最新的 Drupal 9 於去年6月發布,它是一款完全現代化的 PHP Web 應用,基於 Composer、Symphony 和 Twig 等 PHP 工具構建。
Vulkan 是新一代的圖形和計算 API,它為現代 GPU 提供了高效、跨平臺的訪問,可用於從 PC 和遊戲機到行動電話和嵌入式平臺等各種設備。Vulkan API 適用於從高性能電腦到低功耗行動裝置的顯卡,支持遊戲、移動和工作站開發,是 OpenGL 標準的後繼產品。
與本質上是圖形 API 的 OpenGL 相比,Vulkan 更像是 GPU API。AMD、Arm、Broadcom、Imagination、Intel、NVIDIA、Qualcomm 和 VeriSilicon 都提供了 Vulkan 驅動程序,以及適用於 Windows、Linux、macOS/iOS 和 Android 的 Vulkan SDK。現在,最優秀的遊戲引擎也支持 Vulkan。
Redis 是一個支持網絡、基於內存、分布式、可選持久性的開源 Key-Value 存儲資料庫,在速度、彈性、可伸縮性和靈活性方面擁有強大的優勢。Redis 是一種 NoSQL 內存資料庫,可用於製作資料庫、緩存和消息代理。
Redis 內置備份、Lua 腳本、LRU 淘汰策略、事務和不同級別的磁碟持久性等功能,它通過 Redis Sentinel 和 Redis Cluster 自動分區提供了高可用性,並且通常提供一毫秒以下的資料庫延遲。
Airflow 是一個靈活、可擴展的工作流自動化和調度系統,可編集和管理數百 PB 的數據流。項目可輕鬆編排複雜的計算工作流,通過智能調度、資料庫和依賴關係管理、錯誤處理和日誌記錄,Airflow 可以對從單個伺服器到大規模集群的資源進行自動化管理。
Apache Airflow 採用 Python 編寫,具有高擴展性,能夠運行其他語言編寫的任務,並允許與常用的體系結構和項目集成,如 AWS S3、Docker、Kubernetes、MySQL、PostgresSQL 等。
Apache Superset 是開源的數據探查與可視化平臺(曾用名 Panoramix、Caravel),它將 SQL IDE、數據瀏覽工具、拖拽式儀錶板編輯器和插件組合使用,以構建自定義的可視化效果,支持從許多關係資料庫和非關係資料庫中創建儀錶板,並且可以連接到 Apache Drill 和 Apache Druid。此外,Superset 還適用於雲原生場景和 Docker。
JanusGraph 是高度可擴展的分布式圖資料庫,專門用於存儲和查詢包含數千億個分布在多機集群中的極點和邊緣的圖形。和 Neo4j 一樣,JanusGraph 具有事務和索引功能,既適用於圖 OLTP 使用,也適用於 OLAP 分析使用,可以支持數千個並發用戶實時執行複雜的圖遍歷。
JanusGraph 支持多種儲存後端(包括 Apache Cassandra、Apache HBase、Bigtable、Berkeley DB)。JanusGraph 的可擴展性取決於與 JanusGraph 一起使用的基礎技術。例如,通過使用 Apache Cassandra 作為存儲後端,可以將 JanusGraph 簡單地擴展到多個數據中心。
JanusGraph 通過與大數據平臺(Apache Spark,Apache Giraph,Apache Hadoop)集成,支持全局圖數據的分析、報告和 ETL。
Apache Druid 是一個分布式列存儲資料庫,具備高性能實時分析功能。它是為大型數據集實時探索查詢的引擎,專為雲時代而設計,提供專為 OLAP 設計的開源分析數據存儲系統,它的設計意圖是在面對代碼部署、機器故障以及其他產品系統遇到不測時能保持 100% 正常運行。它也可以用於後臺用例,但設計決策明確定位線上服務。
Apache Arrow 存在的目的是作為一個跨平臺的數據層來加快大數據分析項目的運行速度。最新的 1.0 版本中為內存格式引入了多種語言支持,例如 C, C++, Go, Java, JavaScript, MATLAB, Python, R, Ruby 和 Rust。
Argo 是容器本地工作流引擎,用於在 Kubernetes 上完成工作。Argo實現為 Kubernetes CRD(自定義資源定義),可以直接與 Kubernetes 資源以及 Docker 主導的自定義步驟進行交互。
InfoWorld 表示,在過去的一年裡,Argo 添加了用於模塊化和彈性的新功能,所以它現在應該是處理集群中工作流的最佳方法之一。
Seldon Core 是一個用於在 Kubernetes 上部署機器學習模型的開源平臺。機器學習部署面臨許多挑戰。 Seldon Core打算幫助應對這些挑戰。它的高級目標是允許數據科學家使用任何機器學習工具包或程式語言創建模型,計劃最初涵蓋以下工具/語言:Tensorflow 模型、Sklearn 模型以及基於 Python 的模型(包括 Spark 模型、H2O 模型、R 模型)。
Optuna 是一個特別為機器學習設計的自動超參數優化軟體框架。它具有命令式的,define-by-run 風格的 API。由於這種 API 的存在,用 Optuna 編寫的代碼模塊化程度很高,Optuna 的用戶因此也可以動態地構造超參數的搜索空間。
Optuna 有如下現代化的功能:輕量級、多功能和跨平臺架構;並行的分布式優化和對不理想實驗 (trial) 的修剪 (pruning)。
k9s 是 Kubernetes 集群的監控和管理工具,通過封裝 kubectl 功能,它可以讓開發者快速查看並解決 Kubernetes 中的日常問題。
KubeDirector 旨在簡化在 Kubernetes 上運行複雜的有狀態擴展應用程式集群。KubeDirector 使用自定義資源定義 (CRD) 框架構建,並利用了本地 Kubernetes API 擴展和設計哲學,支持與 Kubernetes 用戶/資源 管理以及現有客戶端和工具的透明集成。KubeDirector 提供以下功能:
無需修改代碼即可在 Kubernetes 上運行非雲原生有狀態應用程式 原生支持保存特定於應用程式的配置和狀態 與應用程式無關的部署模式,最大限度地減少將新的有狀態應用程式裝載到 Kubernetes 的時間Bottlerocket 是基於 Linux 的容器主機開源作業系統,專門針對容器主機用途進行了設計和優化。它僅包括出色容器主機必備的軟體包,並與現有的容器協調程序集成。它支持 Docker 鏡像和符合 Open Container Initiative (OCI) 映像格式的鏡像。
Bottlerocket 沒有選擇軟體包更新系統,而是使用基於映像的簡單模型,可在必要時進行快速而完整的回滾。
SPIFFE (Secure Production Identity Framework For Everyone) 以特製的 X.509 證書形式為現代生產環境中的每個工作負載提供安全標識。SPIFFE 消除了對應用程式級身份驗證和複雜網絡級 ACL 配置的需求。
SPIFFE 標準是許多 CNCF 參與者和其他相關方,聚集在一起提出的共同方法,以便服務彼此呈現和授權他們的身份。
Lem 使用 Common Lisp 對 Emacs 進行重寫,是面向 Common Lisp 開發者的編輯器/IDE。它通過 Common Lisp 調用了 GUI 庫以獲得現代圖形體驗,還可以無縫調用 C/C++ 以及大量的第三方庫。
Chapel 是一種用於大規模生產環境並行計算的程式語言。它的語法除了參考常見的 C、C++ 和 Java 外,還借鑑了一些科學研究性語言(如 Fortran 和 Matalb)裡的概念,性能堪比 C/C++、MPI 和 OpenMP。
Chapel 具備可移植的特性,幾乎可以在任何 *nix 環境中編譯和運行。
Apromore 是一個協作的業務流程分析平臺,支持各種流程挖掘 (process mining) 功能。這些功能輔以業務流程模型的編寫環境,並以企業流程模型倉庫為基礎。
Sourcegraph 是一款能夠根據語義來把 Web 上的開原始碼編入索引的代碼搜索瀏覽工具,提供代碼搜索和代碼語義智能感知功能。
開發者可以從代碼倉庫和安裝包,甚至是函數裡搜索代碼,同時也可以直接點擊被完全創建連結的代碼來閱讀文檔、跳轉到變量定義或者馬上找到可用的 Demo。
總而言之,開發者可以在 Web 瀏覽器上完成這一切,而不需要配置任何編輯器。
QuestDB 是高性能的時序資料庫,用於快速處理時序數據和事件。為了提供出色的查詢性能,QuestDB 充分利用了自定義存儲引擎,使用大量並行執行、SIMD 指令以及一系列低延遲技術。QuestDB 代碼完全從零開始構建,沒有任何依賴,並且沒有 GC。
Open Policy Agent 是一個通用的策略引擎,可以在整個堆棧中實現統一的、上下文感知的策略實施。此引擎將策略決策從軟體業務邏輯中解耦剝離,將策略定義、決策過程抽象為通用模型,實現為一個通用策略引擎。
以上就是 2020 年度 InfoWorld Bossie Awards 項目,關於每個項目具體的入選評語等詳細信息,查看網站原文:
https://www.infoworld.com/article/3575858/the-best-open-source-software-of-2020.html