生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

Rust/WinRT 预览版发布,微软在 Rust 大道上又进了一步

  • 2020-05-26
  • 本文字数:1014 字

    阅读完需:约 3 分钟

Rust/WinRT预览版发布,微软在Rust大道上又进了一步

Rust/WinRT是 Windows 运行时的一种语言映射,现在发布了预览版,可以通过自然惯用的方式来调用 Windows API,类似于C++/WinRT等其他语言映射。


借助 Rust/WinRT,你可以直接使用由 API 元数据生成的动态代码来调用 WinRT API,不管是过去的、现在的还是未来的,并可以直接调用 Rust 包,就好像调用另一个 Rust 模块一样。


微软首席软件工程师 Kenny Kerr 解释说,Rust 开发人员可以使用 Rust/WinRT 开发 Windows 应用程序和组件,以及 NT 服务或 Windows 驱动程序。下面演示了如何使用 XmlDocument 类来解析 XML 文档:


use windows::data::xml::dom::*;let doc = XmlDocument::new()?;doc.load_xml("<html>hello world</html>")?;let root = doc.document_element()?;assert!(root.node_name()? == "html");assert!(root.inner_text()? == "hello world");
复制代码


微软努力让 Rust/WinRT 代码尽可能看起来接近惯用的 Rust 代码,比如,蛇形命名到驼峰命名的自动转换、对 Rust null 合并操作符?的支持、简化错误传递,等等。


根据 InfoQ 之前的报道,一段时间以来,微软一直在探索将 Rust 作为开发安全软件的解决方案。微软工程师 Ryan Levick 和 Sebastian Fernandez 在上一界巴塞罗那 RustFest 大会上解释说,微软期望 Rust 能够让高性能关键组件的开发变得更安全,尽管 Rust 社区仍然需要克服很多困难才能让 Rust 及其工具链为 Windows 提供一等支持。


这个新项目似乎证实了微软对待在开发中使用 Rust 这件事是认真的:


长期以来,微软一直将 C++作为开发的基础,但也面临着一些挑战,尤其是在安全方面。Rust 是一种有趣的编程语言,它在很多方面与 C++非常相似,在编译、运行时模型、类型系统和确定性终止机制方面都做得很好。它有自己独特的学习曲线,不过它可以解决困扰 C++项目的一些最令人头疼的问题,而且它的设计从一开始就是以内存安全和安全并发作为核心原则。


要在项目中使用 Rust/WinRT,可以在 Cargo.toml 文件添加依赖:


[dependencies]winrt = { git = "https://github.com/microsoft/winrt-rs" }
复制代码


这样就可以导入任意 Windows 模块:


use winrt::*;import!(    dependencies        os    modules        "windows.data.xml.dom"        "windows.foundation"        "windows.ui");
复制代码


Rust/WinRT 现在只提供了早期预览版,虽然已经足够成熟了。Robert Mikhayelyan 的Rust扫雷游戏提供了非常好的示例。


原文链接


Rust/WinRT Brings Microsoft Closer to Adopting Rust Internally


2020-05-26 10:132324

评论

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

OceanBase 4.0解读:从TPC-H性能测评看4.0与3.x差异

OceanBase 数据库

数据库 oceanbase

学习大数据技术培训班靠谱吗

小谷哥

餐饮业数字化提速,OceanBase助海底捞变身“云上捞”

OceanBase 数据库

数据库 oceanbase

程序摄像头Trace Profiling:生产环境10分钟黄金时间快速排障手册

KINDLING

Java Linux 运维 ebpf

微软提出通用解码器 X-Decoder,支持图像分割和语言分词

Zilliz

算法模型

腾讯企点助力建发纸业:浆纸产业数字化战略,传统行业在低增长时代的新路径

人称T客

软件开发入门教程网之C++ 引用

雪奈椰子

ios打包

深耕5G云专网,阿里云祝顺民入选“2022年度5G创新人物”

云布道师

云网络

武汉web前端培训靠谱吗

小谷哥

到底什么样的 REST 才是最佳 REST?

江南一点雨

Rest springboot

2023 好运开年,OpenMLDB 入选 2022 中国技术品牌影响力企业

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

目标检测模型的评价标准-AP与mAP

嵌入式视觉

ap map roc PR曲线 精确率与召回率

16款跨平台应用开发框架,你Pick谁?

Speedoooo

跨端开发 跨端框架 跨端应用平台 跨端开发平台

大数据技术培训学习机构怎么样

小谷哥

​​苹果应用上架后多久可以下载​

雪奈椰子

ios打包

AI创作惊艳四方,诸多挑战仍在路上

科技热闻

​​软件开发入门教程网之​​C++ 信号处理信号

雪奈椰子

容器 I/O 性能诊断:到底哪个应用是带宽杀手?

阿里巴巴中间件

阿里云 容器 云原生

MX934-1D Maxon Ex d IIC T6 Gb/Ex tD A21 IP68 T80℃ Explosion-Proof 5G Router & Heavy Duty Antenna

wifi6module

Heavy Duty

从0.5到4.0,OceanBase单机分布式一体化的技术演进|DTCC 2022

OceanBase 数据库

数据库 oceanbase

​​软件开发入门教程网之​​C++ 标准库

雪奈椰子

C++

WEB前端编程培训学技术怎么样

小谷哥

【Meetup预告】SeaTunnel + OpenMLDB:共筑数据集成生态,加速实时场景落地

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

神经网络模型复杂度分析

嵌入式视觉

params 模型计算量分析 FLOPs 卷积层MAC 浮点计算能力

Github获赞32.4K!阿里大牛亲码Spring Boot进阶(全彩版小册)

架构师之道

Java 微服务 架构师

java程序员培训学习值得吗?

小谷哥

有什么好用的云渲染?这篇文章给你答案

Renderbus瑞云渲染农场

云渲染 好用的云渲染平台

​​软件开发入门教程网之​​C++ 信号处理

雪奈椰子

ios打包

一站式开发平台 赋能办公全场景

力软低代码开发平台

目标检测模型基础知识

嵌入式视觉

Focal Loss IOU NMS Soft NMS anchor

软件测试/测试开发 | 使用 Zabbix + Grafana 搭建服务器监控系统

测试人

软件测试 Grafana 自动化测试 zabbix 测试开发

Rust/WinRT预览版发布,微软在Rust大道上又进了一步_编程语言_Sergio De Simone_InfoQ精选文章