当前位置 : 主页 > 编程语言 > java >

【Rust日报】 2019-05-16:在Rust中创建C/C++ API

来源:互联网 收集:自由互联 发布时间:2022-06-30
「官宣」Rust四周年 #Rust 从2015年5月15日Rust 1.0版发布至今,取得了如下成绩: 连续四年StackOverflow的“最受喜爱的编程语言” (日报君感慨:近一年半看了很多社区内的各种动态,大家

「官宣」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




网友评论