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:132466

评论

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

AE 3D粒子系统插件推荐 Trapcode Particular激活最新版

胖墩儿不胖y

Mac插件 粒子插件 粒子插件ae

Retrobatch 2 for mac(图像批量设计工具)

展初云

Linux RN6752 驱动编写

EquatorCoco

Linux 运维

用友iuap智能中台助力中国矿产“数智员工”成功上岗

用友BIP

数智员工

电机制造业mes,mes生产管理系统,免费电机mes

万界星空科技

电机 mes 制造业生产管理系统 直流电机 云mes

Flutter App混淆加固、保护与优化原理

WebSocket 是什么原理?为什么可以实现持久连接?

EquatorCoco

Web 网络协议 websocket 通信协议

借助ETL快速查询金蝶云星空表单信息

RestCloud

ETL 金蝶云

如何使用Selenuim浏览器自动化框架实现自动登录社交媒体账号和自动发布文章

爱写字的阿城

自动化 selenium

Parallels Desktop 19 for Mac(PD19虚拟机)一键激活版

iMac小白

低成本大模型解决方案

百度开发者中心

gpu #人工智能 LLM

GraphicConverter 12 for mac v12.0.8中文激活版

iMac小白

有”亿“点强,抖音的服务器带宽是如何应对亿人同时刷屏的?

Finovy Cloud

云计算 CDN 短视频 抖音 短视频制作

Kubernetes集群原地无损大版本升级的一些探索

chen

Kubernetes 升级 Kubernetes 集群 kubernetes 运维

Pixea 5 for Mac(看图软件)

展初云

Mac 看图软件 Pixea Plus for Mac

VMware InstallBuilder Enterprise for Mac(跨平台安装程序的开发工具)v23.11激活版

iMac小白

Sketch 57 for mac(矢量绘图软件) v57.1中文激活版

mac

Sketch 苹果mac Windows软件 矢量绘图软件

INFINI Easysearch 与华为鲲鹏完成产品兼容互认证

极限实验室

华为鲲鹏 easysearch 极限科技 华为鲲鹏认证

分享一套生产管理MES系统的源代码,可以直接拿来搞钱的好项目

万界星空科技

开源 开源代码 MES系统 生产管理系统 开源mes

集成测试的实践与思考

老张

软件测试 集成测试 质量保障

结合RNN与Transformer的强大模型

百度开发者中心

大模型 #人工智能

EAM与IOT融合,用友BIP资产云助力设备智慧运维!

用友BIP

资产管理

4天肝出一个数据应用,可能吗?| StartDT Hackathon

奇点云

操作系统 数据应用 奇点云

Mp3tag for Mac(音频标签编辑器)

展初云

Mac软件 Mp3tag 音乐标签

情感语音识别的挑战与未来趋势

来自四九城儿

LLM大模型AI能力助力企业数字化智能化转型

百度开发者中心

#人工智能 LLM

VMware Fusion Pro 13 for Mac(VM虚拟机)v13.5.0激活版

iMac小白

全能pdf编辑工具 PDF Expert 中文激活最新版

mac大玩家j

PDF Mac软件 pdf编辑器 pdf工具

事项法会计:业财融合落地的基石

用友BIP

业财融合

After Effects 2023 for Mac(AE视频特效制作软件) v23.6完美激活版

mac

AE2023 苹果mac Windows软件 视频特效软件 After Effects 2023

一键部署,高效私有化大模型

百度开发者中心

大模型 #人工智能 LLM

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