写点什么

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:001901
用户头像

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

关注

评论

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

一个响指,代码生成!华为云CodeArts Snap正式公测

华为云PaaS服务小智

人工智能 华为云

为什么跨境电商成为海外云手机的主要受众群体?

Ogcloud

云手机 海外云手机 跨境电商云手机 云手机海外版

Comparison between IPQ9574 and IPQ9554 | MLO EHT Solution Unveils the WiFi 7 CPU for Industrial

wallyslilly

软件测试学习笔记丨Linux数据处理

测试人

软件测试

苹果电脑实用工具:Unclutter for mac 下拉菜单隐藏工具

南屿

软件测试学习笔记丨Flask环境安装

测试人

软件测试

Higress 开源一周年:新版本,新标准,新工具,新征程

阿里巴巴云原生

阿里云 开源 云原生 Higress

探索 Vue 3.0 下的低代码创新

不在线第一只蜗牛

低代码 开发 Vue3 API

选择海外云手机需要考虑什么?

Ogcloud

云手机 海外云手机 云手机海外版

连续四次登顶!天翼云稳居中国专属云服务市场第一

天翼云开发者社区

云计算 云服务 IDC

区块链开发项目:构建去中心化未来的蓝图

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

一文深度解读多模态大模型视频检索技术的实现与使用

阿里云CloudImagine

云计算 大模型 视频云

使用云手机运营TikTok,实现更多可能性

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版

AI for Good | AI+环保,点亮可持续的智能未来

澳鹏Appen

人工智能 AI向善 环境保护

macOS数据转换工具 Easy Data Transform for mac v1.46.2激活版

南屿

Excel CSV编程文件转换 数据转换工具 Easy Data Transform

在线视频转Mp3软件4K YouTube to MP3中文直装版

南屿

音频提取工具 音频转换 MP3

大模型+知识图谱双驱架构:新一代《知识语义框架SPG》白皮书

可信AI进展

知识图谱 大模型

下一代软件架构,如何构建微服务核心能力

阿里巴巴云原生

阿里云 Serverless 微服务 云原生

10个适合后端程序员的前端框架

快乐非自愿限量之名

程序员 前端 前端框架

减少文件体积优化性能,你的姿势对了吗?

Yestodorrow

云原生 前端开发 可观测性 用户体验 网站性能

亚洲杯+欧洲杯+奥运会观赛“体育直播平台”如何开发方法

软件开发-梦幻运营部

17 位社区大咖寄语,Seata 进入 Apache 孵化器

阿里巴巴云原生

Apache 阿里云 云原生 seata

正式发布!《ICPMM行业云平台运营管理能力成熟度》系列标准来了!

天翼云开发者社区

云计算 云服务 企业上云

低代码开发业务在AIGC时代的应用

EquatorCoco

人工智能 低代码 AIGC

最佳在线项目管理网站揭晓:2024年全方位对比15大热门工具

爱吃小舅的鱼

项目管理 项目管理工具

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