开源最前线(ID:OpenSourceTop) 猿妹编译链接:https://www.infoworld.com/article/3444198/the-best-open-source-software-of-2019.html
近日 InfoWorld 公布了 2019 年最佳开源软件榜单。十几年来,InfoWorld每年都会发布该榜单,开源软件对于开发者来说至关重要,不仅因为它们是免费的,最主要的是它们确实很好用。
如今,对于软件开发、云计算、数据分析、机器学习等领域而言,最重要的软件都是开源软件,下面一起看看哪些项目入选:
1、BPF Compiler Collection(BCC)
BCC是基于BPF的Linux IO分析、监控、 络工具集合。BPF Compiler Collection (BCC) 是创建高效内核追踪和处理程序的工具包,包含几个有用的工具和用例。BCC扩展了BPF (Berkeley Packet Filters) 的用途,BPF之前被称为eBPF,是Linux 3.15新增的一个新特性。BCC 大部分的功能都要求Linux 4.1+。
Netflix的内核/性能工程师Brendan Gregg即将出版一本名为《BPF Performance Tools》,感兴趣的可以关注起来了。
2、Wasmer
Wasmer是一个Go库,用来执行WebAssembly二进制程序。与Node.js为JavaScript所做的类似,Wasmer允许WebAssembly在任何地方运行。基于Cranelift代码生成器,Wasmer提供了涵盖Go、C/ c++、c#、Python、R、Rust、Ruby和PHP的语言集成,并提供了适用于Linux、Mac和Windows的运行时
3、Language Server Protocol
近年来,软件领域最引人注目的一些创新是在工具链上,例如…LLVM编译器框架,用于实现编译器的库。
4、Serverless Framework
在减少操作开销方面,没有什么比无服务器架构更好的了。无服务器框架不仅能让你在不同的部署目标之间自由选择,而且可以更快、更轻松地测试、部署和管理事件驱动的、功能即服务(FaaS)的应用程序。
项目背后的开发人员今年正致力于用实时监控、安全性和集成测试来加强无服务器框架,这些都深入到应用程序管理生命周期中。
5、Istio
微服务体系结构可以简化开发,但是随着服务数量的激增,管理起来也会变得越来越复杂,Istio是一个由IBM、Google 以及Lyft联合推出的开源软件,为运行在Kubernetes上的微服务提供流量管理,访问策略管理以及监控等功能。
6、Envoy
Envoy是开源的边缘和服务代理,在成为第一批云原生计算基础项目之一后,,Envo进入了像lstio和AWS App Mesh这样的服务 格的核心,并迅速成为其不可分割的一部分
大多数Kubernetes设置,大量的生产部署,诸如Reddit上的部署,证明了Envoy可以大规模工作。在过去的一年里,Envoy还发布了移动版,它集合了Envoy的许多优点,成为一个适用于iOS和Android的跨平台库,虽然Envoy还处于早期发布阶段,但它在2020年有很大的发展空间。
7、Kong
如果你正在构建APls,并且不希望重新造轮子,比如负载平衡、身份验证、日志记录等等。Mashape(后来的Kong Inc.)开发的开源软件Kong提供了所有这些功能。该公司还提供了Kong Enterprise,这是一个建立在开源核心之上的企业级API平台。
Kong提供了几乎所有需要的功能,以补充应用程序开箱即用的API集。包括断路器、运行状态检查、OAuth、转换、缓存、地理位置复制等功能。
8、Pulumi
Pulumi是一个云开发平台,可以让云程序创建变得轻松而高效,Pulumi支持多语言、混合云环境、完全可扩展。初期支持JavaScript、TypeScript、Python和Go语言,支持AWS、Azure、GCP云平台,另外还支持所有兼容Kubernetes的公有云、私有云和混合云。
9、Sysdig
像Kubernetes和Cloud Foundry这样的云原生技术已经很复杂了。如果将微服务体系结构添加到这个组合里面,监控就将成为一个挑战,Sysdig提供了一组工具,这些工具不仅可以深入了解基于容器的应用程序的性能,还可以帮助检测异常和安全威胁。
10、Kraken
大型容器部署需要高容量的Docker镜像传输,Kraken是一个高度可伸缩的点对点Docker容器仓库,你可以在几秒钟内获取tb级的图像数据。
Kraken支持可插拔存储选项,而不是管理数据blob,Kraken可以插入可靠的blob存储选项,如S3,HDFS或其他注册表。存储界面简单,易于添加新选项。独特的数据分发解决方案基于现有的成熟技术。此外,Kraken具有自我修复功能,易于维护,并支持集群之间的无损和基于规则的异步复制。
11、Anaconda
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
12、Kotlin
Kotlin语言是由JetBrains开发的,并在2011年发布了公测版,它可以像Java一样运行在JVM上,并且与Java库无缝交互,增强了函数式编程特性,并且能够更优雅地处理指针异常等安全问题,Kotlin 1.3于2018年底发布,增加了将Kotlin直接编译为平台原生代码的功能,这是Java中长期以来无法实现的功能。
13、Julia
随着数据科学的飞速发展,对快速、简单的数值计算工具的需求也在激增。Julia是一个新的高性能动态高级编程语言。语法和其他编程语言类似,易于其他语言用户学习。Julia拥有丰富的函数库,提供了数字精度、精致的增幅器(sophisticated amplifier)和分布式并行运行方式。
核心函数库等大多数库是由Julia编写,但也用成熟的C和FORTRAN库来处理线性代数、随机数产生和字符串处理等问题。Julia语言可定义函数并且根据用户自定义的参数类型组合再进行重载。
14、Hazelcast Jet
Hazelcast Jet旨在提供一种功能,让开发人员在各种数据源之上构建分布式容错数据处理管道。它使用Hazelcast IMDG作为内部数据管理技术,并以Hazelcast的内存计算技术作为基础。Hazelcast将Jet描述为:“让大数据成为应用程序基础设施的一部分”。
Hazelcast Jet的GA版本提供了对Java 11的全面支持,改进了流诊断、聚合特性等,Java开发人员可以轻松地使用熟悉的工具,如map、filter和reduce。
15、Apache Airflow
Apache Airflow是一个基于python的平台,以非常灵活的方式来支持数据的ETL过程,同时还支持非常多的插件来完成诸如HDFS监控、邮件通知等功能。Airflow支持单机和分布式两种模式,支持Master-Slave模式,支持Mesos等资源调度,有非常好的扩展性,被大量公司采用。
16、GridGain
大约五年前,GridGain将lgnite代码库开源给Apache软件基金会,此后该公司一直在为内存数据 格平台提供企业级的特性、更新和增强。GridGain 区版于今年3月发布,旨在优化性能和可靠性。
GridGain是一个完全基于Java5开发的开源 格计算平台。专注于 格处理,能够与JBoss和Spring相集成。
17、Apache Druid
Druid是一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍能够保持100%正常运行。Druid功能介于PowerDrill和Dremel之间,它几乎实现了Dremel的所有功能,并且从PowerDrill吸收一些有趣的数据格式。
18、TensorFlow
在所有优秀的机器学习和深度学习框架中,TensorFlow是最成熟的,在研究论文中被引用的次数最多(即使不包括来自谷歌员工的引用),在生产中使用的次数最多的框架。它可能不是最容易学习的框架,但与2016年相比,它已经不那么令人望而生畏了。TensorFlow是许多谷歌服务的基础。TensorFlow 2.0侧重于简单和易用性,直观的高级api,并且能够在任何平台上构建灵活的模型。
19、TensorWatch
TensorWatch是一个调试和可视化工具,专为Microsoft Research的深度学习和强化学习而设计。它适用于Jupyter Notebook,可显示机器学习训练的实时可视化,并执行模型和数据的其他几个关键可视化。
20、PyTorch
2018年,深度学习快速蹿红之后,PyTorch在2019年成为最适合用于生产中的工具,随着PyTorch 1.0版本的发布和TorchScript (Python的jit编译子集,结合了快速的c++运行时)的加入,该框架已逐步成熟。
除此之外,在过去的一年里,PyTorch周围的生态系统也变得更加成熟,难怪PyTorch会成为许多数据科学家的最爱。
21、Transformers
Transformers(以往称为 pytorch-transformers 和 pytorch-pretrained-bert)是用于 TensorFlow 2.0 和 PyTorch 的自然语言处理框架。它提供了用于自然语言理解(NLU,Natural Language Understanding)和自然语言生成(NLG,Natural Language Generation)的最先进的通用架构,包括 BERT、GPT-2、RoBERTa、XLM、DistilBert 与 XLNet 等,具有超过 100 种语言的 32 种以上经过预训练的模型,以及 TensorFlow 2.0 和 PyTorch 之间的深度互操作性。
22、Ludwig
Ludwig是来自Uber的一个Python工具箱,基于TensorFlow,它允许用户在不需要编写代码的情况下训练和测试深度学习模型!用户只需要提供一个包含数据的CSV文件,一个列表作为输入,一个列表作为输出,Ludwig就将为你完成其余的工作:训练、测试、可视化、分布式训练等等。
23、RAPIDS
RAPIDS数据科学框架包括一系列库,用于完全在GPU中执行端到端数据科学管道。它旨在为使用Python工作的数据科学家提供熟悉的外观和感觉。RAPIDS使用优化的NVIDIA?CUDA?原语和高带宽GPU内存来加速数据准备和机器学习。RAPIDS的目标不仅是加速典型数据科学工作流程的各个部分,还要加速完整的端到端工作流程。
24、MLflow
MlFlow是一个支持机器学习生命周期的框架。这意味着它拥有在训练和运行期间监控模型的组件、存储模型的能力,在生产代码中加载模型以及创建管道。
25、Kubeflow
Kubeflow是谷歌发布的一个机器学习工具库,Kubeflow项目旨在使Kubernetes上的机器学习变的轻松、便捷、可扩展,其目标不是重建其他服务,而是提供一种简便的方式找到最好的OSS解决方案。
26、Delta Lake
今年早些时候,Databricks开放了Delta Lake的源代码,这让几乎所有人都感到意外。Delta Lake过去是(现在仍然是)该公司商业产品的重要组成部分。尽管Delta Lake仍处于开源开发的早期阶段(6月份发布的0.2.0版本,增加了对AWS和Azure的云支持),但它已经在Viacom和McGraw Hill的产品中得到使用,因此你现在可以放心地使用它了。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!