本文是 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