写点什么

Rust 1.14 提供对 WebAssembly 的实验性支持以及 Rustup 1.0

  • 2016-12-29
  • 本文字数:956 字

    阅读完需:约 3 分钟

据 Rust 核心开发团队在博客中所写,Rust 1.14 中引入了实验性的新WebAssembly 编译目标,并扩展了模式识别操作符“…”的语法。此外,Rustup 现已达到稳定,成为由源文件构建Rust 的推荐方法。

WebAssembly 是一种可移植的底层字节码,能够使用多数平台具有的通用硬件能力让执行达到近原生的速度。Rust 现在使用了新的“wasm32-unknown-emscripten”编译目标支持 WebAssembly,开发人员可以通过执行如下的命令,将 Rust 编译为 WebAsembly:

复制代码
$ rustup target add wasm32-unknown-emscripten
$ echo 'fn main() { println!("Hello, Emscripten!"); }' > hello.rs
$ rustc --target=wasm32-unknown-emscripten hello.rs

运行如上的命令将输出 Node 可运行的 hello.js 文件。正如前面所提及的,现在 Rust 对 WebAssembly 支持依然是实验性的,部分Rust Runtime 依然完全不可用,例如Rust 的I/O 栈。WebAssembly 的支持需要 emscripten ,可运行如下命令进行安装:

复制代码
curl -O https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
tar -xzf emsdk-portable.tar.gz
source emsdk_portable/emsdk_env.sh
emsdk update
emsdk install sdk-incoming-64bit
emsdk activate sdk-incoming-64bit

在语言前端上,Rust 1.0扩展了模式匹配操作符“…”的语法,实现了对使用了该操作符的部分上下文进行选择性的忽略。例如,现可使用如下代码正确地匹配 Point 元组中的 x 并忽略其中的 y 和 z 元素:

复制代码
struct Point(i32, i32, i32);
let p = Point(0, 1, 2);
match p {
Point(x, ..) => println!("x is {}", x),
}

先前“…”操作符只能用做忽略全部元素,例如:

复制代码
let p = Point(0, 1, 2);
match p {
Point(..) => println!("found a point"),
}

Rust 1.14 的另一个显著特性是 Rustup 1.0 ,它现在已经相当稳定。Rustup 是一个命令行应用,可为一些支持平台下载不同版本的 Rust 工具链(即编译器 rustc 和标准库)并做切换。

Rust 1.14 的发布中具有超过 1200 个补丁,详细信息参见官方发行说明

查看英文原文: Rust 1.14 Brings Experimental WebAssembly Support and Rustup 1.0


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-12-29 18:002072
用户头像

发布了 227 篇内容, 共 78.6 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

关于在hive任务中number of reducers的探讨

编程江湖

一张图看懂全球最新DDoS攻击趋势

科技热闻

字节跳动基于 Apache Hudi 的多流拼接实践

字节跳动数据平台

字节跳动 实时数仓 Hudi

《2021年IT行业项目管理调查报告》重磅发布!

禅道项目管理

项目管理 DevOps 加班

区块链中的共识机制简介

中原银行

区块链 中原银行

国产化浪潮下TiDB解决的痛点问题

TiDB 社区干货传送门

【征文大赛】TiDB 社区专栏第一届征文大赛,快来一次性集齐所有周边吧!

TiDB 社区干货传送门

不后悔的星期四,明道云首次全网公开直播零代码训练营

明道云

下一代对话系统中的关键技术

硬科技星球

深度确定性策略梯度(DDPG)

行者AI

浅谈外挂常识和如何防御

行者AI

一文简述:云端架构的演变过程

穿过生命散发芬芳

3月月更

数字化转型-基本认知

Geek_XOXO

数字化转型

华为公布终端云最新数据:终端全球月活用户超过7.3亿

叶落便知秋

华为

分布式事务揭秘

中原银行

分布式 分布式事务 云原生 中原银行

Flink CDC 2.2 正式发布,新增四种数据源,支持动态加表,提供增量快照框架

Apache Flink

大数据 flink 编程 流计算 实时计算

模块1 作业

KennyQ

云效流水线 Flow 是什么?为什么选择云效「Flow」

阿里云云效

阿里云 云原生 持续交付 研发 云效流水线 Flow

协同·转型·智慧,WorkPlus移动平台帮助企业走好数字化转型之路

BeeWorks

Linux内核权限提升漏洞

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

基于Prometheus的企业级监控体系探索与实践

中原银行

分布式 微服务 云原生 Prometheus 中原银行

低代码实现探索(三十九)组件库的开发

零道云-混合式低代码平台

阿里云智能编码插件,Cosy文档搜索上新了

阿里云云效

阿里云 代码管理 代码库 阿里云智能编码插件 Cosy

Apache Shiro Realm实战及认证授权源码解读

编程江湖

一起来DIVE!在基础软件知识海洋遨游,还能赢取万元奖品!

InfoQ写作社区官方

热门活动 DIVE

《中国金融科技与数字普惠金融发展报告(2022)》发布 十大趋势研判未来行业发展

BeeWorks

优酷播放黑科技 | 自由视角技术的全链路策略与落地实践

阿里巴巴终端技术

客户端 音视频技术 视频技术

私有化部署是什么意思?企业私有化部署的几种类型和利弊分析

BeeWorks

昇思MindSpore行至2022,开源社区成就生态共赢

科技热闻

固定资产管理系统的主要功能和优点

低代码小观

低代码 企业管理 资产管理 企业管理系统 CRM系统

Apache Flink 在翼支付的实践应用

Apache Flink

大数据 flink 编程 流计算 实时计算

Rust 1.14提供对WebAssembly的实验性支持以及Rustup 1.0_语言 & 开发_Sergio De Simone_InfoQ精选文章