< 返回版块

Jancd 发表于 2020-06-05 00:20

Tags:rust,news

微软对 Rust 的热爱是怎么回事?

就在前天【6月2号】,Rust 进入了 TIOBE 指数的前 20 名,它从第 38 位跃升到第 20 位,跃升了惊人的 18 位,这其实是挺罕见的。于是 Visual Studio Magazine 发表了一篇题为 So What's Up with Microsoft's (and Everyone Else's) Love of Rust? 的博文,更多详情请看:https://visualstudiomagazine.com/articles/2020/06/02/rust-love.aspx?m=1

ct_python!

ct_python!是一个 Rust 宏,用于在编译时执行 Python 代码,并将输出作为 Rust 代码插入到 Rust 程序中。它是 inline-python【https://github.com/fusion-engineering/inline-python】的一部分。

#![feature(proc_macro_hygiene)]
use ct_python::ct_python;

static SIN_2: f64 = ct_python! {
    from math import sin
    print(sin(2))
};

ct_python! {
    print("type num = f64;")
}

fn main() {
    assert_eq!(num::sin(2.0), SIN_2);
}

syn-rsx

首先 syn(https://github.com/dtolnay/syn) 是一个解析库,用于将 Rust 令牌流解析为 Rust 源代码的语法树。

syn-rsx 基于 syn,是一个类似于 JSX 的 TokenStreams 解析器。 解析的结果是嵌套的 Node 结构,类似于浏览器 DOM,其中节点名称和值是支持构建 proc 宏的 syn 表达式。并提供了用于自定义解析行为的 ParserConfig。

项目地址:https://github.com/stoically/syn-rsx

示例:

use quote::quote;
use syn_rsx::parse2;

let tokens = quote! {
    <div foo={bar}>
        <div>"hello"</div>
        <world />
    </div>
};

let nodes = parse2(tokens, None).unwrap();

let node = &nodes[0];
assert_eq!(node.attributes[0].name_as_string().unwrap(), "foo");

let children = &node.children;
assert_eq!(children.len(), 2);
assert_eq!(children[0].children[0].value_as_string().unwrap(), "hello");
assert_eq!(children[1].name_as_string().unwrap(), "world");

使用 Rocket 进行 Rust web 开发实例

这是油管上的一个较短视频教程,约 20 分钟,结合实际例子,讲述使用 Rocket 框架进行简短、易用、类型安全的 Rust web 开发。地址:https://www.youtube.com/watch?v=tjH0Mye8U_A&feature=youtu.be


From 日报小组 @Jancd

社区学习交流平台订阅:

评论区

写评论
senseiod 2020-06-06 11:19

  微软热爱Rust是怎么回事呢?微软相信大家都很熟悉,但是微软热爱Rust是怎么回事呢,下面就让小编带大家一起了解吧。   微软热爱Rust,其实就是Rust太棒了,大家可能会很惊讶微软怎么会热爱Rust呢?但事实就是这样,小编也感到非常惊讶。   这就是关于微软热爱Rust的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!

1 共 1 条评论, 1 页