【Rust日报】 2019-05-16

「官宣」Rust四周年

#Rust

从2015年5月15日Rust 1.0版发布至今,取得了如下成绩:

连续四年StackOverflow的“最受喜爱的编程语言” (日报君感慨:近一年半看了很多社区内的各种动态,大家形容Rust用的最多的一个词是:Amazing,如果非要翻译成中文,我觉得「赞叹」比较好。) 稳定了嵌入式Rust rustc成为第一个专注于支持WASM的编译器 Rust 2018 edition发布 Crates.io通过了10亿次下载,拥有超过25,000个crate 现在全世界有超过100个聚会,分布在42个国家 6场新的大会在世界各地涌现(RustRush,RustCon Asia,Oxidize,Rust LATAM,Colorado Gold Rust,RustLab Italy)

这个清单如果继续写下去会很长,Rust已经在众多领域陆续开花了。Rust社区感谢有你!

Read More

为什么越来越多的知名项目用Rust来开发?

#Rust

社区@Mike写的一篇文章,侧重分享了为什么Rust适合区块链开发。

Read More

「中文」Rust Async: 标准库futures api解析

#async

Read More

「系列」Rust for OOP系列介绍

#learning

这位博主打算写一系列主题是Rust for OOP的文章,主要是针对有一定OOP语言开发经验的人来学习。可以先关注下。

Read More

在Rust中创建C/C++ API

#CPP

这篇文章介绍了一些可以帮助自动生成C/C++ API的优秀工具。比如:

bindgen, 可以根据给定的头文件自动创建Rust绑定代码。对C语言比较友好,但是对C++来说,用途有限。因为C++的继承处理比较麻烦。 cbindgen,可以方便地为Rust项目生成C API。它还支持以C++风格输出数据类型和模板等。 cpp,这是一个Rust crate,可以帮忙编写C++ API。它提供了一个cpp!宏,可以在其中嵌入c++代码。它可以方便和cbindgen搭配使用。

作者还总结了一些在Rust中创建C/C++API的准则:核心逻辑和FFI层之间应该明确分离,最好把FFI代码置于一个单独的crate中,这样做的好处是设计Rust API不会受到FFI的太多影响。

Read More

meta: 用于解析人类可读性文本的DSL解析库

#dsl #parsing

可用于语言设计,自定义格式和数据驱动开发。该库提供了一种叫做「meta语言」的规则,用来告诉程序如何阅读要解析的文档。这些文档都是人类可读格式的。

最小化示例:

use piston_meta::*;

fn main() {
    let text = r#"hi James!"#;
    let rules = r#"
        1 say_hi = ["hi" .w? {"James":"james" "Peter":"peter"} "!"]
        2 document = say_hi
    "#;
    // Parse rules with meta language and convert to rules for parsing text.
    let rules = syntax_errstr(rules).unwrap();
    let mut data = vec![];
    parse_errstr(&rules, text, &mut data);
    json::print(&data);
}

输出:"james":true

meta

rplidar.rs : 思岚科技RPLIDAR产品的Rust SDK

#rOS

Rust比较适合机器人领域

rplidar.rs

see: 静态文件服务器

#staticFile

see

From 日报小组 @Chaos

日报订阅地址:

独立日报订阅地址:

Telgram Channel 阿里云语雀订阅 Steemit GitHub

社区学习交流平台订阅:

Rust.cc论坛: 支持rss Rust Force: 支持rss 微信公众号:Rust语言学习交流

文章来源:

Author:Rust.cc
link:https://rust.cc/article?id=d1d5db24-eb76-44cb-b147-c82c984ab50e