本文是 infoworld 2021 年公布的《最佳开源软件榜单》翻译稿。infoworld 是一家信息技术媒体公司,成立于 1978 年目前隶属于 idg。每年 infoworld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年的“最佳开源软件” (bossie),该奖项评选已经延续了十多年。本次获奖的 29 个开源项目包括:软件开发、开发、云原生计算、机器学习等类型,下面我们一起来看看,有没有熟悉的面孔!1、svelte 和 sveltekit在众多创新的、开源的、前端的 javascript 框架中,svelte 及其全栈对应的 sveltekit 可能是最有野心和远见的。svelte 一开始就通过采用编译时策略来颠覆现状,并以出色的性能、持续的发展和卓越的开发者体验向前迈进。sveltekit 现已进入公测阶段,它延续了 svelte 的传统,通过采用最新的工具,并将部署到无服务器环境作为一项内置功能来实现飞跃。地址:https://github.com/sveltejs/svelte2、minikubeminikube 是一个易于在本地运行 kubernetes 的工具,可在你的笔记本电脑上的虚拟机内轻松创建单机版 kubernetes 集群。便于尝试 kubernetes 或使用 kubernetes 日常开发。地址:https://github.com/kubernetes/minikube3、pixiepixie 是 kubernetes 应用的可观察性工具,它可以查看集群的高级状态,如服务地图、集群资源和应用流量;还可以深入到更详细的视图,如 pod 状态、火焰图和单个 full-body 应用请求。pixie 使用 ebpf 自动收集遥测数据,它在集群本地收集、存储和查询所有的遥测数据,使用不到 5% 的集群 cpu。pixie的用例包括集群内的网络监控、基础设施健康、服务性能和数据库查询剖析。地址:https://github.com/pixie-io/pixie
4、fastapifastapi 是一个高性能 web 框架,用于构建 api。主要特性:快速:非常高的性能,与 nodejs 和 go 相当
快速编码:将功能开发速度提高约 200% 至 300%
更少的错误:减少约 40% 的人为错误
直观:强大的编辑器支持,自动补全无处不在,调试时间更少
简易:旨在易于使用和学习,减少阅读文档的时间。
简短:减少代码重复。
稳健:获取可用于生产环境的代码,具有自动交互式文档
基于标准:基于并完全兼容 api 的开放标准 openapi 和 json schema
地址:https://github.com/tiangolo/fastapi
5、crystal 作为一个提供具有 c 语言的速度和 ruby 语言的表现力的编程语言的项目,crystal 已经开发了好几年了。随着今年年初 crystal 1.0 的发布,该语言现在已经足够稳定到可以用于一般工作负载。crystal 使用静态类型和 llvm 编译器来实现高速度,并避免在运行时出现空引用等常见问题。crystal 可以与现有的 c 代码接口,以进一步提高速度和便利性,它还可以使用编译时宏来扩展基础语言的语法。地址:https://github.com/crystal-lang/crystal
6、windows terminalwindows terminal 是一个全新的、流行的、功能强大的命令行终端工具。包含很多来社区呼声很高的特性,例如:多 tab 支持、富文本、多语言支持、可配置、主题和样式,支持 emoji 和基于 gpu 运算的文本渲染等等。同时该终端依然符合我们的目标和要求,以确保它保持快速、高效,并且不会消耗大量内存和电源。关注linux中文社区地址:https://github.com/microsoft/terminal
7、obs studioobs studio 是一款用于实时流媒体和屏幕录制的软件,为高效捕获,合成,编码,记录和流传输视频内容而设计,支持所有流媒体平台。高性能实时视频/音频捕获和混合。创建由多种来源组成的场景,包括窗口捕获、图像、文本、浏览器窗口、网络摄像头、捕获卡等。设置无限数量的场景,用户可以通过自定义过渡无缝切换。带有每个源滤波器的直观音频混合器,例如噪声门,噪声抑制和增益。全面控制vst插件支持。强大且易于使用的配置选项。添加新源,复制现有源,并轻松调整其属性。精简的设置面板使用户可以访问各种配置选项,以调整广播或录制的各个方面。模块化的“dock” ui允许用户完全根据需要重新排列布局。用户甚至可以将每个单独的 dock 弹出到自己的窗口中。地址:https://github.com/obsproject/obs-studio
8、shotcutshotcut 是一款跨平台的视频编辑工具,允许人们在应用效果和分层的同时,对音频和视频轨道进行所有的标准修正。shotcut 有一个非常活跃的社区,并提供大量的操作视频和指导,以帮助新手和高级摄像师。它可以在 mac、linux、bsd 和 windows 上运行--尽管是跨平台的,但与同类工具相比,它的界面很敏捷,使用起来也相对简单。地址:https://github.com/mltframework/shotcut
9、weave gitops coreweave gitops 支持有效的 gitops 工作流,以将应用程序持续交付到 kubernetes 集群中。它基于领先的 gitops 引擎 cncf flux。地址:https://github.com/weaveworks/weave-gitops
10、apache solrapache solr 是基于 lucene 的全文搜索服务器,也是最流行的企业级搜索引擎。apache lucene 是你所使用的大部分软件的搜索功能背后的基础搜索技术--包括其他搜索引擎,如 elasticsearch。与 elasticsearch 不同的是,solr 放弃了它的开源许可,不过它仍然是免费的。solr 是可集群的、可在云端部署的,并且强大到足以建立云端级的搜索服务。它甚至包括 ltr 算法,以帮助自动调整和加权结果。地址:https://github.com/apache/solr
11、mlflowmlflow 由 databricks 创建,并由 linux 基金会托管,是一个 mlops 平台,可以让人跟踪、管理和维护各种机器学习模型、实验及其部署。它为你提供了记录和查询实验(代码、数据、配置、结果)的工具,将数据科学代码打包成项目,并将这些项目链入工作流程。地址:https://github.com/mlflow/mlflow
12、orangeorange 旨在使将数据挖掘富有成效且有趣。orange 允许用户创建一个数据分析工作流程,执行各种机器学习和分析功能以及可视化。与 r studio 和 jupyter等程序化或文本工具相比,orange 是非常直观的。你可以将小部件拖到画布上以加载文件,用模型分析数据并将结果可视化。地址:https://github.com/biolab/orange3
13、flutterflutter 由 google 的工程师团队打造,用于创建高性能、跨平台的移动应用。flutter 针对当下以及未来的移动设备进行优化,专注于 android and ios 低延迟的输入和高帧率。它可以给开发者提供简单、高效的方式来构建和部署跨平台、高性能移动应用;给用户提供漂亮、快速、jitter-free 的 app 体验。地址:https://github.com/flutter
14、apache supersetapache superset 是 airbnb (知名在线房屋短租公司)开源的数据探查与可视化平台(曾用名 panoramix、caravel ),该工具在可视化、易用性和交互性上非常有特色,用户可以轻松对数据进行可视化分析。apache superset 也是一款企业级商业智能 web 应用程序。地址:https://github.com/apache/superset
15、prestopresto 是一个开源的分布式 sql 引擎,用于在线分析处理,在集群中运行。presto 可以查询各种各样的数据源,从文件到数据库,并将结果返回到许多商业智能和分析环境。更重要的是,presto 允许查询数据所在的地方,包括 hive、cassandra、关系型数据库和专有数据存储。一个 presto 查询可以结合多个来源的数据。facebook 使用 presto 对几个内部数据存储进行互动查询,包括他们的 300pb 数据仓库。地址:https://github.com/prestodb/presto
16、apache arrowapache arrow 为平面和分层数据定义了一种独立于语言的柱状内存格式,为现代 cpu 和 gpu 上的高效分析操作而组织。arrow 内存格式还支持零拷贝读取,以便在没有序列化开销的情况下进行闪电式的数据访问。arrow 库可用于 c、c++、c#、go、java、javascript、julia、matlab、python、r、ruby 和 rust。
地址:https://github.com/apache/arrow
17、interpretmlinterpretml 是一个开源的 explainable ai(xai)包,其中包含了几个最先进的机器学习可解释性技术。interpretml 让你训练可解释的 glassbox 模型并解释黑盒系统。interpretml 可帮助你了解模型的全局行为,或了解个别预测背后的原因。在它的许多功能中,interpretml 有一个来自 microsoft research 的glass box模型,称为 explainable boosting machine,它支持用黑盒模型的近似值进行 post-hoc 解释的 lime。地址:https://github.com/interpretml/interpret
18、limelime(local interpretable model-agnostic explanations 的简称)是一种 post-hoc 技术,通过扰动输入的特征并检查预测结果来解释任何机器学习分类器的预测。lime 能够解释任何具有两个或更多类的黑盒分类器,其同时适用于文本和图像领域。lime 也被包含在 interpretml 中。地址:https://github.com/marcotcr/lime
19、daskdask 是一个用于并行计算的开源库,可以将 python 包扩展到多台机器上。dask 可以将数据和计算分布在多个 gpu 上,无论是在同一个系统中还是在一个多节点集群中。dask 与 rapids cudf、xgboost 和 rapids cuml 集成,用于 gpu 加速的数据分析和机器学习。它还与 numpy、pandas 和 scikit-learn 集成,以并行化其工作流程地址:https://github.com/dask/dask
20、blazingsqlblazingsql 是一个基于 rapids 生态系统构建的 gpu 加速 sql 引擎。rapids 基于 apache arrow 柱状内存格式,cudf 是一个 gpu dataframe 库,用于加载、连接、聚合、过滤和操作数据。它是 cudf 的 sql 接口,具有支持大规模数据科学工作流和企业数据集的各种功能。地址:https://github.com/blazingdb/blazingsql
21、rapidsnvidia 的 rapids 开源软件库和 api 套件让你有能力完全在 gpu 上执行端到端的数据科学和分析管道。rapids 使用 nvidia cuda 基元进行底层计算优化,并通过用户友好的 python 接口暴露了 gpu 的并行性和高带宽内存速度。rapids 依赖于 apache arrow 柱状内存格式,包括 cudf,一个类似 pandas 的 dataframe 库;cuml,一个机器学习库集合,提供 scikit-learn 中大多数算法的 gpu 版本;以及 cugraph,一个类似 networkx 的加速图分析库地址:https://github.com/rapidsai/cudf
22、posthogposthog 是一个为开发人员构建的开源产品分析平台。自动收集你网站或应用程序上的每个事件,无需向第三方发送数据。它在用户级别提供基于事件的分析,捕获你产品的使用数据以查看哪些用户在你的应用程序中执行了哪些操作。它会自动捕获点击次数和综合浏览量,以分析你的用户在做什么,而无需手动推送事件。地址:https://github.com/posthog/posthog
23、lakefslakefs 提供了一种以管理代码的方式管理你的数据湖的方法,为对象存储增加了一层类似于 git 的版本控制。这种对 git 语义的应用让用户可以创建自己的隔离的、零拷贝的数据分支,在上面工作、实验和建模分析,而没有破坏共享对象的风险。lakefs 为你的数据带来了有用的 commit notes、元数据字段和 rollback 选项,同时也带来了维护数据完整性和质量的验证 hooks--在一个未提交的分支被意外地合并回生产中之前,运行格式和模式检查。通过 lakefs,管理和保护代码库的熟悉技术可以扩展到现代数据库,如 amazon s3 和 azure blob 存储。地址:https://github.com/treeverse/lakefs
24、meltanomeltano 是今年从 gitlab 中分离出来的,一个免费的开源 dataops 替代传统 elt(提取、加载、转换)的工具链。meltano 的数据仓库框架使得为你的项目建模、提取和转换数据变得容易,并通过内置的分析工具和简化报告的仪表盘来补充集成和转换管道。meltano提供了一个可靠的提取器和加载器库,以及对 singer 标准的 data extracting taps 和 data loading targets 的支持,meltano 已经是一个数据编排的动力源。25、trinotrino(原名 prestosql)是一个分布式 sql 分析引擎,能够对大型分布式数据源运行极快的查询。trino 允许你同时对数据湖、关系型存储或多个不同来源执行查询,而不需要复制或移动数据进行处理。而且 trino 与你的数据科学家可能使用的任何商业智能和分析工具配合得很好,无论是交互式的还是临时性的,最大限度地减少了学习曲线。随着数据工程师努力支持越来越多的数据源的复杂分析,trino 提供了一种优化查询执行和加速不同来源的结果的方法。地址:https://github.com/trinodb/trino
26、streamnativestreamnative 是一个高度可扩展的消息和事件流平台,大大简化了实时报告和分析工具以及企业应用流的数据管道铺设。streamnative 将 apache pulsar 强大的分布式流处理架构与 kubernetes 和混合云支持等企业额外功能、大型数据连接器库、简易认证和授权以及用于健康和性能监控的专用工具相结合,既简化了基于 pulsar 的实时应用程序的开发,又简化了大规模消息传递背板的部署和管理。地址:https://github.com/streamnative
27、hugging facehugging face 提供了最重要的开源深度学习资源库,它本身并不是一个深度学习框架。hugging face 的目标是扩展到文本之外,支持图像、音频、视频、物体检测等。infoworld 指出,深度学习从业者应在未来几年内密切关注这个 repo。地址:https://github.com/huggingface/transformers
28、eleutheraieleutherai 是一个由机器学习研究人员组成的分布式小组,旨在将 gpt-3 带给所有人。2021 年伊始,eleutherai 发布了 the pile,是一个 825 gb 的用于训练的多样化文本数据集;并在 6 月公布了 gpt-j,一个 60 亿参数的模型,大致相当于 openai 的 gpt-3 的 curie variant。随着 gpt-neox 的出现,eleutherai计划将参数一直提高到 1750 亿,以与目前最广泛的 gpt-3 模型竞争。地址:https://github.com/eleutherai/gpt-neo
29、colab notebooks for generative art
首先是 openai 的 clip(对比语言-图像预训练)模型,一个用于生成文本和图像矢量嵌入的多模态模型。虽然 clip 是完全开源的,但 openai 的生成性神经网络 dall-e 却不是。为了填补这一空白,ryan murdoch 和 katherine crowson 开发了 colab notebooks, clip 与其他开源模型(如 biggan 和 vqgan)结合起来,制作 prompt-based 生成性艺术作品。这些 notebooks 基于 mit 许可,于过去几十年间在互联网上进行了广泛传播,被重新混合、改变、翻译,并被用来生成了惊人的艺术作品。
以上就是2021 年最佳开源软件榜单的详细内容。