InfoWorld 公布 2020 年最佳开源软件

InfoWorld 公布了 2020 年最佳开源软件榜单。

InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌,每年 InfoWorld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年的“最佳开源软件” (InfoWorld’s Best of Open Source Software Awards, Bossies),该奖项评选已经延续了十多年。

获奖的 25 个开源项目包含用于构建 Web 应用的工具、机器学习模型、数据可视化工具、工作流、数据库和数据分析工具等。

下边来看看每一个项目(点击每个项目名可跳转进入项目介绍页面)。

Hasura

Hasura GraphQL Engine 是一个超快的 GraphQL 服务器,可以让你基于 PostgreSQL 数据库快速建立 GraphQL API 服务。通过数据库事件实现 webhook triggers ,其 remote schemas 用于构建业务逻辑。

Prisma

Prisma 被认为是一款对 TypeScript 开发者友好的 ORM 框架,包括 SQL 查询自动补全功能,可用于快速构建 GraphQL 服务、REST API 和数据库服务等。

  • 已支持 MySQL, PostgreSQL, MongoDB 和 SQLite 等数据库,其他流行数据库正在开发中
  • 客户端已支持 JavaScript, TypeScript, Flow, Go 等语言
  • 类型安全的数据库访问,包括过滤器、聚合、分页和事务
  • 数据库的实时事件系统以获得有关数据库事件的通知
  • 具有简单 SDL 语法的声明性数据建模和迁移

Jekyll

InfoWorld 对 Jekyll 的评价是“最好的静态站点生成器之一”。Jekyll 无需数据支持,可以将内容打包为单个网页的集合,然后推送到 CDN。Jekyll 所做的工作虽然只是将文本放入模板并生成静态内容,正因如此,用户获得了模板所带来的灵活性以及存储静态文件的良好速度。

Gatsby

Gatsby 是基于 React 构建的静态站点生成器,拥有丰富的插件生态,其主要目标之一是交付访问速度快速的网页,它通过利用良好的缓存、静态页面生成和基于边缘的 CDN 数据源来实现这一目标。所以 Gatsby 声称自己比其他的静态站点生成器快 2.5 倍。InfoWorld 对 Gatsby 的评价是既优雅又快速。

Drupal

Drupal 是用 PHP 编写的内容管理系统。业界通常将 Drupal 视为内容管理框架 (CMF),而非一般意义上的内容管理系统 (CMS)。它最令人深刻的特点是其“模块”哲学,这种思想降低了向核心添加功能的难度,并且配合适当的组件使用,还可以创建各种类型的网站。

当前最新的 Drupal 9 于去年6月发布,它是一款完全现代化的 PHP Web 应用,基于 Composer、Symphony 和 Twig 等 PHP 工具构建。

Vulkan

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

Redis 是一个支持网络、基于内存、分布式、可选持久性的开源 Key-Value 存储数据库,在速度、弹性、可伸缩性和灵活性方面拥有强大的优势。Redis 是一种 NoSQL 内存数据库,可用于制作数据库、缓存和消息代理。

Redis 内置备份、Lua 脚本、LRU 淘汰策略、事务和不同级别的磁盘持久性等功能,它通过 Redis Sentinel 和 Redis Cluster 自动分区提供了高可用性,并且通常提供一毫秒以下的数据库延迟。

Apache Airflow

Airflow 是一个灵活、可扩展的工作流自动化和调度系统,可编集和管理数百 PB 的数据流。项目可轻松编排复杂的计算工作流,通过智能调度、数据库和依赖关系管理、错误处理和日志记录,Airflow 可以对从单个服务器到大规模集群的资源进行自动化管理。

Apache Airflow 采用 Python 编写,具有高扩展性,能够运行其他语言编写的任务,并允许与常用的体系结构和项目集成,如 AWS S3、Docker、Kubernetes、MySQL、PostgresSQL 等。

Apache Superset

Apache Superset 是开源的数据探查与可视化平台(曾用名 Panoramix、Caravel),它将 SQL IDE、数据浏览工具、拖拽式仪表板编辑器和插件组合使用,以构建自定义的可视化效果,支持从许多关系数据库和非关系数据库中创建仪表板,并且可以连接到 Apache Drill 和 Apache Druid。此外,Superset 还适用于云原生场景和 Docker。

JanusGraph

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

Apache Druid 是一个分布式列存储数据库,具备高性能实时分析功能。它是为大型数据集实时探索查询的引擎,专为云时代而设计,提供专为 OLAP 设计的开源分析数据存储系统,它的设计意图是在面对代码部署、机器故障以及其他产品系统遇到不测时能保持 100% 正常运行。它也可以用于后台用例,但设计决策明确定位线上服务。

Apache Arrow

Apache Arrow 存在的目的是作为一个跨平台的数据层来加快大数据分析项目的运行速度。最新的 1.0 版本中为内存格式引入了多种语言支持,例如 C, C++, Go, Java, JavaScript, MATLAB, Python, R, Ruby 和 Rust。

Argo

Argo 是容器本地工作流引擎,用于在 Kubernetes 上完成工作。Argo实现为 Kubernetes CRD(自定义资源定义),可以直接与 Kubernetes 资源以及 Docker 主导的自定义步骤进行交互。

InfoWorld 表示,在过去的一年里,Argo 添加了用于模块化和弹性的新功能,所以它现在应该是处理集群中工作流的最佳方法之一。

Seldon Core

Seldon Core 是一个用于在 Kubernetes 上部署机器学习模型的开源平台。机器学习部署面临许多挑战。 Seldon Core打算帮助应对这些挑战。它的高级目标是允许数据科学家使用任何机器学习工具包或编程语言创建模型,计划最初涵盖以下工具/语言:Tensorflow 模型、Sklearn 模型以及基于 Python 的模型(包括 Spark 模型、H2O 模型、R 模型)。

Optuna

Optuna 是一个特别为机器学习设计的自动超参数优化软件框架。它具有命令式的,define-by-run 风格的 API。由于这种 API 的存在,用 Optuna 编写的代码模块化程度很高,Optuna 的用户因此也可以动态地构造超参数的搜索空间。

Optuna 有如下现代化的功能:轻量级、多功能和跨平台架构;并行的分布式优化和对不理想实验 (trial) 的修剪 (pruning)。

K9s

k9s 是 Kubernetes 集群的监控和管理工具,通过封装 kubectl 功能,它可以让开发者快速查看并解决 Kubernetes 中的日常问题。

KubeDirector

KubeDirector 旨在简化在 Kubernetes 上运行复杂的有状态扩展应用程序集群。KubeDirector 使用自定义资源定义 (CRD) 框架构建,并利用了本地 Kubernetes API 扩展和设计哲学,支持与 Kubernetes 用户/资源 管理以及现有客户端和工具的透明集成。KubeDirector 提供以下功能:

  • 无需修改代码即可在 Kubernetes 上运行非云原生有状态应用程序
  • 原生支持保存特定于应用程序的配置和状态
  • 与应用程序无关的部署模式,最大限度地减少将新的有状态应用程序装载到 Kubernetes 的时间

Bottlerocket

Bottlerocket 是基于 Linux 的容器主机开源操作系统,专门针对容器主机用途进行了设计和优化。它仅包括出色容器主机必备的软件包,并与现有的容器协调程序集成。它支持 Docker 镜像和符合 Open Container Initiative (OCI) 映像格式的镜像。

Bottlerocket 没有选择软件包更新系统,而是使用基于映像的简单模型,可在必要时进行快速而完整的回滚。

SPIFFE

SPIFFE (Secure Production Identity Framework For Everyone) 以特制的 X.509 证书形式为现代生产环境中的每个工作负载提供安全标识。SPIFFE 消除了对应用程序级身份验证和复杂网络级 ACL 配置的需求。

SPIFFE 标准是许多 CNCF 参与者和其他相关方,聚集在一起提出的共同方法,以便服务彼此呈现和授权他们的身份。

Lem

Lem 使用 Common Lisp 对 Emacs 进行重写,是面向 Common Lisp 开发者的编辑器/IDE。它通过 Common Lisp 调用了 GUI 库以获得现代图形体验,还可以无缝调用 C/C++ 以及大量的第三方库。

Chapel

Chapel 是一种用于大规模生产环境并行计算的编程语言。它的语法除了参考常见的 C、C++ 和 Java 外,还借鉴了一些科学研究性语言(如 Fortran 和 Matalb)里的概念,性能堪比 C/C++、MPI 和 OpenMP。

Chapel 具备可移植的特性,几乎可以在任何 *nix 环境中编译和运行。

Apromore

Apromore 是一个协作的业务流程分析平台,支持各种流程挖掘 (process mining) 功能。这些功能辅以业务流程模型的编写环境,并以企业流程模型仓库为基础。

Sourcegraph

Sourcegraph 是一款能够根据语义来把 Web 上的开源代码编入索引的代码搜索浏览工具,提供代码搜索和代码语义智能感知功能。

开发者可以从代码仓库和安装包,甚至是函数里搜索代码,同时也可以直接点击被完全创建链接的代码来阅读文档、跳转到变量定义或者马上找到可用的 Demo。

总而言之,开发者可以在 Web 浏览器上完成这一切,而不需要配置任何编辑器。

QuestDB

QuestDB 是高性能的时序数据库,用于快速处理时序数据和事件。为了提供出色的查询性能,QuestDB 充分利用了自定义存储引擎,使用大量并行执行、SIMD 指令以及一系列低延迟技术。QuestDB 代码完全从零开始构建,没有任何依赖,并且没有 GC。

Open Policy Agent

Open Policy Agent 是一个通用的策略引擎,可以在整个堆栈中实现统一的、上下文感知的策略实施。此引擎将策略决策从软件业务逻辑中解耦剥离,将策略定义、决策过程抽象为通用模型,实现为一个通用策略引擎。

以上就是 2020 年度 InfoWorld Bossie Awards 项目,关于每个项目具体的入选评语等详细信息,查看网站原文:

https://www.infoworld.com/article/3575858/the-best-open-source-software-of-2020.html

 

from:https://www.oschina.net/news/125859/2020-infoworld-bossie-awards