2022 年優秀開源軟件榜單
本文是 InfoWorld 2022 年公布的《最佳開源軟件榜單》翻譯稿。
InfoWorld 是一家信息技術媒體公司, 它創刊于 1978 年,從最初的一份月刊發展至今。但更為人熟知的是它的母公司 International Data Group(IDG),IDG 不僅是一家媒體信息技術出版公司還是風險投資公司,所以會出現在各大互聯網公司的融資新聞中(以前)。
接著說回這份《最佳開源軟件榜單》,每年 InfoWorld 都會根據軟件對開源界的貢獻,以及在業界的影響力評選出當年的「最佳開源軟件 (BOSSIE)」。下面就讓我們一起來看看,這份榜單里有沒有熟悉的面孔吧!
1、AlmaLinux
AlmaLinux 是由社區驅動的開源項目,由 CloudLinux OS 的創建者打造,一開始是作為 CentOS 的替代品。它是從紅帽企業 Linux (RHEL) 的源碼編譯而來,所以跟 RHEL 8 在二進制上完全兼容。
地址:https://github.com/AlmaLinux
2、podman
Podman 是一個無守護進程的容器引擎,用于在 Linux 系統上開發、管理和運行 OCI 容器。容器既可以用 root 身份運行,也可以在非 root 模式下運行。
作為 Libpod 的一部分,它的定義可以簡單地用命令:alias docker=podman 表示。
地址:https://github.com/containers/podman
3、Play with Docker
Play with Docker 是一個 Docker 學習平臺,可以在瀏覽器上免費體驗 Alpine Linux 虛擬機。不過需要登錄和注冊,而且每次登錄創建的實例都有有時間限制,到時間還需要重新登錄。
你可以在 Play with Docker 中構建和運行 Docker 容器,提升自己操作 Docker 的能力(默認已搭建好環境),甚至在 Docker Swarm 模式下創建集群, Docker-in-Docker (DinD) 用于提供多個 VM/PC 的效果。
地址:https://github.com/play-with-docker/play-with-docker
4、Vaadin
Vaadin 是一個可在 Java 中實現 Web 用戶界面的 Web 框架,無需編寫任何 HTML 或 JavaScript 代碼。它包含一個服務器端,主要的應用邏輯都在服務器端運行,然后瀏覽器端通過 Ajax 技術跟服務器端進行交互。
地址:https://github.com/vaadin/platform
5、JHipster
JHipster 是一個全棧的 Java 應用程序開發平臺,可用來創建基于 Maven+Spring+AngularJS 的項目,提供完全熱加載的 Java 和 JavaScript 代碼。
它還提供了包含 CLI 工具在內的許多組件,用于處理多種技術棧的腳手架生成,比如用 Vue.js UI 為前端 MongoDB 作為后端,以 React 為前端的 Postgres 等等...
地址:https://github.com/jhipster/generator-jhipster
6、SolidJS
SolidJS 是一個用于構建用戶界面的聲明式、高效且靈活的 JavaScript 庫。它不使用虛擬 DOM。相反,它選擇將其模板編譯為真實的 DOM 節點,并將更新包裝在細粒度的 React 中。
地址:https://github.com/solidjs/solid
7、Redwood
Redwood 是一個全棧 Web 框架,它將 React、GraphQL、Prisma、TypeScript、Jest 和 Storybook 的優點結合在一起。
它采用類似 Rails 的方法來滿足數據建模和腳手架等重復性的需求,還解決了安全性和跟蹤、集成等需求。Redwood 允許針對各種部署環境,包括 Vercel 和 Netlify 等無服務器平臺。
地址:https://github.com/redwoodjs/redwood
8、Next.js
Next.js 是一個用于服務器渲染的通用 JavaScript Web 應用程序的小型框架,該框架基于 React、Webpack 和 Babel 構建,為建立網站提供了強大的支持。
地址:https://github.com/vercel/next.js
9、Wasmtime
Wasmtime 是 WebAssembly 和 WASI 的小型高效運行時庫,采用 Rust 編寫,構建于編譯器 Cranelift 之上。它完全開源,符合 WASI 標準,還支持與 C/C++、Python、.NET、Go 和其他編程語言集成,可運行在 Windows、Linux、macOS 等平臺。
地址:https://github.com/bytecodealliance/wasmtime
10、PyScript
PyScript 是一個開發框架,為開發者提供了在標準 HTML 中嵌入編寫 Python 代碼的能力。使用 Python 調用 JavaScript 函數庫,以及創建 Python Web 應用。PyScript 旨在提供“一等公民 (first-class)”的編程語言,它具有一致的風格化規則、易于學習等特點。
地址:https://github.com/pyscript/pyscript
11、Hardhat
Hardhat 是面向專業人士的以太坊開發環境,同時也是一個優秀的開源框架,它簡化了在以太坊上編碼、測試和部署 Dapps 和開發智能合約的過程。
地址:https://github.com/NomicFoundation/hardhat
12、OpenFGA
OpenFGA 是一種適用于細粒度授權的開源授權解決方案,允許開發人員使用易于閱讀的建模語言和友好的 API 構建精細的訪問控制系統。
它應用了 ReBAC 的概念,由 Auth0 FGA 團隊創建,并受到 Zanzibar 的啟發,專為大規模的可靠性和低延遲而設計的授權系統。
地址:https://github.com/openfga/openfga
13、Sentry
Sentry 是一個實時的事件日志和聚合平臺,基于 Django 構建。Sentry 可以幫助你將 Python 程序的所有 exception 自動記錄下來,然后在一個簡單好用的 UI 上呈現和搜索。
地址:https://github.com/getsentry/sentry
14、Appsmith
Appsmith 是一個開源低代碼框架,用于構建管理面板、CRUD 應用程序和工作流。它允許拖放組件來構建儀表板、使用 JavaScript 編寫邏輯并連接到任何 API、數據庫或 GraphQL 源。
地址:https://github.com/appsmithorg/appsmith
15、Spinnaker
Spinnaker 是一個持續交付平臺,它定位于將產品快速且持續地部署到多種云平臺上。主要特性:配置一次,隨時運行;隨地部署,集中化管理;
地址:https://github.com/spinnaker/spinnaker
16、Hypertrace
Hypertrace 是一個開源的分布式跟蹤和可觀察性引擎,能夠從龐大的云原生架構中的大量服務中攝取和處理大量實時性能數據。
它可以監控應用程序和微服務,跨多個接觸點跟蹤分布式事務,并將所有這些信息提煉成服務指標和應用程序流程圖,顯示在可自由定制的儀表板上。
地址:https://github.com/hypertrace/hypertrace
17、Gravitee
Gravitee API 網關是基于 Vert.X 開發的高性能接口網關,支持 Swagger 導入接口、文檔管理、性能分析、操作審計、日志,負載均衡等功能。
地址:https://github.com/gravitee-io/gravitee-api-management
18、OpenTelemetry
OpenTelemetry 是一項高質量的便攜式遙測技術,可用于檢測、生成、收集和導出遙測數據(指標、日志和跟蹤),以幫助分析軟件的性能和行為。
它可以跨多種語言使用,且易于與流行的庫和框架集成,例如 Spring、 ASP.NET Core、 Express、Quarkus 等。
地址:https://github.com/open-telemetry
19、Grafana
Grafana 是 Graphite 和 InfluxDB 的儀表盤和圖形編輯器,同時也是開源的、功能齊全的度量儀表盤和圖形編輯器,支持 Graphite,InfluxDB 和 OpenTSDB。
主要特性:靈活豐富的圖形化選項;可以混合多種風格;支持白天和夜間模式;多個數據源;支持 Graphite 和 InfluxDB 查詢編輯器;
地址:https://github.com/grafana/grafana
20、Dapr
Dapr 是微軟新推出的,一種可移植的、serverless 的、事件驅動的運行環境。使開發人員可以輕松構建彈性,無狀態和有狀態微服務,讓這些服務運行在云和邊緣上,支持多種語言和開發框架。
地址:https://github.com/dapr/dapr
21、Redpanda
Redpanda 是 Kafka 的插件替代品,無需 ZK 和 JVM。主要用 C++ 編寫,使用 Seastar 異步框架和 Raft 共識算法用于其分布式日志。
它可以提供高達 10 倍的平均延遲降低和高達 6 倍的 Kafka 事務速度,同時運行在更少的資源上。
地址:https://github.com/redpanda-data/redpanda
22、Apache lceberg
Iceberg 是一種用于大型分析表的高性能格式。Iceberg 為大數據帶來了 SQL 表的可靠性和簡單性,同時讓 Spark、Trino、Flink、Presto、Hive 和 Impala 等引擎能夠同時安全地使用相同的表。
地址:https://github.com/apache/iceberg
23、Apache Druid
Druid 是一個高性能實時分析數據庫。它是為大型數據集上實時探索查詢的引擎,提供專為 OLAP 設計的開源分析數據存儲系統,它的設計意圖是在面對代碼部署、機器故障以及其他產品系統遇到不測時能保持 100% 正常運行。
地址:https://github.com/apache/druid
24、JAX
JAX 來自 Google,它是一個 TensorFlow 的簡化庫,結合了 Autograd 和 XLA,專門用于高性能機器學習的研究。
憑借 Autograd,JAX 可以求導循環、分支、遞歸和閉包函數,并且它可以進行三階求導。通過 grad,它支持自動模式反向求導(反向傳播)和正向求導,且二者可以任何順序任意組合。
地址:https://github.com/google/jax
25、nbdev
nbdev 是一個 Jupyter Notebooks 驅動的開發平臺。只需使用輕量級標記編寫 Jupyter Notebooks ,即可獲得高質量的文檔、測試、持續集成和打包,比起傳統編程環境,nbdev 的代碼調試和重構容易得多。
地址:https://github.com/fastai/nbdev
26、Accelerate
Accelerate 是一個庫,只需添加四行代碼,即可在任何分布式配置中運行相同的 PyTorch 代碼!簡而言之, Accelerate 可以讓大規模的訓練和推理變得簡單、高效和強適應性。
地址:https://github.com/huggingface/accelerate
27、Stable Diffusion
Stable Diffusion 是一種文本到圖像的 AI 模型,可以生成質量驚人的圖像。
世界各地的愛好者都在圍繞這個項目進行改進工作,以加快圖像生成速度,支持在內存較低的 GPU 上運行,并添加畫內和畫外支持,他們甚至在 M1 的 MacBook 上運行了 Stable Diffusione。
地址:https://github.com/CompVis/stable-diffusion
28、EleutherAI
嚴格來說,EleutherAI 是一群致力于實現開源人工智能研究的 AI 研究人員,旗下有多款預訓練模型,包括:
GPT-NeoX-20B:一個與 CoreWeave 合作訓練的 200 億參數模型
GPT-J-6B:在 Pile 上訓練的 60 億參數模型
地址:https://github.com/EleutherAI