Fish Shell 分享从 C++ 切换到 Rust 的经验
本月初,Fish Shell 4.0 进入测试阶段,C++ 代码被移植到了 Rust。现在,Fish Shell 的大部分代码都过渡到了 Rust,项目团队在日前发布了一篇博文,概述了他们在将庞大的 C++ 代码库移植到 Rust 的过程中取得的成功和遇到的挑战。
Fish Shell 开发人员指出,他们在使用 C++ 时遇到的一些问题导致他们更倾向于探索其他语言,其中包括工具和编译器/平台差异、人体工程学和线程安全以及开发社区。其中一个例子是,Fish 曾用 C++ 制作过真正的多线程执行原型,但这对这个开源 Shell 而言是非常痛苦的。
至于 Rust 编程语言,他们承认:"Rust 很酷。它很有趣"。并赞赏了 Rust 的工具性、简单的工具设置、出色的人体工学以及更好的依赖性管理,且 Rust 的发送和同步能力也使其非常适合线程。
但使用 Rust 的过程中也面临了一些挑战,例如如何处理可移植性、工具有时未能考虑其他目标以及一些本地化问题等。总的来说:
“移植并非一帆风顺,而且并非一切都按计划进行。但总体而言,进展相当顺利。我们现在有了一个我们非常喜欢的代码库,它已经获得了一些如果使用 C++ 添加会更麻烦的功能,而且还有更多功能正在开发中,我们还创建了一个单独的 3.7 版本,其中也包括一些很酷的东西。我们做这件事很开心。”
更多详情可查看官方博客。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
苹果在欧盟地区停售 iPhone SE 和 iPhone 14 系列设备
科技媒体 The Verge 报道称,受欧盟新法规影响,苹果宣布在欧盟地区停售配备 Lighting 端口的设备。 据了解,当地时间 12 月 28 日,欧盟委员会 2022 年通过的关于统一充电接口的新规正式生效,电子设备制造商有义务向欧盟 27 国销售的产品配备 USB-C(即 USB Type-C)接口,无法适配的旧设备将逐渐“退市”。 这项法规还要求支持快速充电的设备支持 USB PD 标准,允许将充电模块与零售设备分开,并通过改进的标签帮助消费者更好地了解他们购买的设备的电源要求。 苹果自 iPhone 15 系列开始,将 Lightning 接口更换成 USB-C 接口,且不同型号有所差异。iPhone 15 基础款仅支持 USB2,最大传输速度为 480 MBps,更高级的 Pro 机型则支持 USB3,最大传输速度高达 10 Gbps,比之前提升足足 20 倍。
- 下一篇
🔥 使用 httputils + sbe 实现金融级 java rpc
1、认识 Simple Binary Encoding (sbe) 高性能Java库 Agrona 的主要目标是减少性能瓶颈,通过提供线程安全的直接和原子缓冲区、无装箱操作的原始类型列表、开散列映射和集合以及锁-free队列等,为开发者在处理并发和低延迟场景时提供强大工具。 Simple Binary Encoding (sbe) 是 Agrona 的一部分,也是高性能通讯框架 Aeron 的一部分。 2、什么是 rpc ? 一讲 rpc ,很多人会想到 dubbo (国产)和 grpc。估计还会联想到注册与发现服务;可能还会联想到微服务。可能就会觉得这个事儿“老重啦”,害怕! 其实很简单的,你请求一次 http 就是个 rpc 请求了(远程过程调用嘛)。最典型的就是 http + json 请求了。 3、现在讲 httputils + sbe 这里我们会用到两个重要的solon 框架的插件:一个是 httputils 工具插件,一个是 abc + agrona 序列化插件(abc 适配了多个编解码方案)。 <!-- 这是 sbe 的编解码包装器 --> <de...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker快速安装Oracle11G,搭建oracle11g学习环境