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