首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rust写的Fish Shell即将发布Beta版

“用Rust重写一切!”工程传来一个最新消息:基于Rust改造的Fish shell即将发布beta版本进行公测。

Fish无疑是最有趣的最好用的Shell之一,其丰富的功能列表让许多现有的压箱底的老古董shell相形见绌。和POSIX 标准的shell,比如Bash等不同,Fish shell基于面向更加友好,易用的目标来打造和兼容在大多数POSIX OS上也可以顺利运行。

之前就听说过了,Fish shell的Rust化改造并使其可用于服务器。然而,根据最新爆出消息,第一个基于Rust Fish版本即将开放进行公测。

最近创建的一个Fish shell GitHub仓库问题列表中开发人员发表了一个计划,将发布基于Rust Port的Fish的 Beta 版,以通过公测的方式来发现和完善Rust Port的各种问题。

开发人员认为,Rust版本的发布将提高Shell的可维护性和错误修复能力,并为未来发展奠定基础。虽然Rust移植版不会立即为最终用户带来新的功能,但它标志着Fish Shell发展的重要一步。

一般来说,软件公开测试版是稳定版本发布之前的必经之路,可以在稳定版本发布之前发现和根除所有Bug。

Fish Shell Rust转型

Fish shell 所基于的C++基础出现了许多不可避免的问题。致使其任何必要的改变都需要花费长时间来实施。现有版本是最初于2016年迁移到C++11版本,并一直延续下来,对底层语言C++升级是个一个漫长而痛苦的过程,致使进一步升级更现代的 C++14/17存在极大的不确定性。

如果放弃这种升级换用另一种方式,好处是:

可以让运行旧LTS发行版的服务器上的Fish可用;

使其易于构建和运行;

不再要在过分关注于C++的安全问题,例如头文件、内存安全、未定义行为、编译器错误等问题。

而另一种方式就是用现在流行的内存安全语言Rust来代替C++展示其肌肉:

将基本功能维护都过渡到Rust,并目标是在下一个主要版本发布时候实现。

基于项目现状考虑,这种转型是一个过渡层移植,而非完全用Rust重写,并且通过过渡层,将应用都通过Rust实现,并通过Rust形式翻译链接现有C++底层模块。

这种思想源于一个被丢弃的尝试:Fish shell在原作者“Axel Liljencrantz”丢弃后被“ridiculousfish”拾起,并给了他绿色信号,让这个Fork成为官方的后续项目。

为了证明这是可行的,他将一些模块移植到Rust中,并将它们放在一个位于C++ 代码下并链接到C++代码的包中。

目前官方请求Fish和Rust开发工具的人提供完成脚本,并使用git存储库最新代码对其进行测试验证。

可以展望用不了多久Rust版的Fish Shell就可以跑在你我的服务器上了。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OclUV5ZJsy5BcPtC7hqefkxQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券