【Rust日报】 2020-08-20 Chrome 的 Rust 与 C++ 的互操作性
Chrome 的 Rust 与 C++ 的互操作性
这是 www.chromium.org 上关于 chromium 内存安全的一篇博文,Chrome 工程师正在尝试 Rust。在可预见的将来,C++ 仍然在代码库中占据主导地位,所以如果任何地方使用 Rust,都需要考虑与 C++ 相适应。这似乎提出了一些 C++/Rust 互操作性的挑战,而在这之前其他人都没有遇到过。
更多详情请看:https://www.chromium.org/Home/chromium-security/memory-safety/rust-and-c-interoperability
Rust on Arduino Uno
这是作者使用 Rust 在 Arduino 上实践的系列博文的第一篇,如何在 Arduino Uno 上点亮小灯?。在撰写本文时,大约一个月前,avr-rust 分支被合并了(https://github.com/rust-lang/rust/issues/44052)。这意味着现在可以通过仅运行cargo + nightly
构建,为目标(avr-unknown-unknown)提供一个 .cargo/config.toml
来为 avr 微控制器板编译 Rust 程序。
更多请看原文:https://creativcoder.dev/rust-on-arduino-uno
Async 项目比较
Rust 的将异步代码引入语言的方法比较新颖,它没有将异步系统与语言打包在一起,例如 Golang 提供的内置 goroutine 的方法,而是提供了一个接口,供独立的库开发人员使用以实现异步给定进程的运行时。所以博文对 Futures、Tokio、async-std、smol、Actix、embrio、Bastion 这些 async 生态的库做了个总结,更多请看原文:https://runrust.miraheze.org/wiki/Async_crate_comparison#Comparison_of_Async_Ecosystems
Gfx-rs
gfx-rs 是 Rust 实现的低级,跨平台图形和计算抽象库,gfx-rs 社区的目标是使 Rust 中的图形编程变得容易,快速和可靠。项目地址:https://github.com/gfx-rs/gfx
async-rwlock
stjepang 的新轮子 async-rwlock(https://github.com/stjepang/async-rwlock),异步读写锁。这种类型的锁允许在任何时间点上有多个读取器或一个写入器。
示例:
use async_rwlock::RwLock;
let lock = RwLock::new(5);
// Multiple read locks can be held at a time.
let r1 = lock.read().await;
let r2 = lock.read().await;
assert_eq!(*r1, 5);
assert_eq!(*r2, 5);
drop((r1, r2));
// Only one write lock can be held at a time.
let mut w = lock.write().await;
*w += 1;
assert_eq!(*w, 6);
From 日报小组 @Jancd @Downtime
- 1635: [Usaco2007 Jan]Tallest Cow 最高的牛
- 1653: [Usaco2006 Feb]Backward Digit Sums
- 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- 1682: [Usaco2005 Mar]Out of Hay 干草危机
- 1637: [Usaco2007 Mar]Balanced Lineup
- AutoFac在项目中的应用
- 每天学一点Docker(5)——了解Docker架构
- 跨站请求伪造(CSRF/XSRF)
- 我这么玩Web Api(一)
- 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路
- 点双连通分量与割点
- 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 初识SpringBoot
- MyBatis结果集映射
- Hadoop分布式集群环境搭建
- 使用Hadoop统计日志数据
- Mybatis在接口上使用注解配置SQL语句以及接口与xml一起使用
- 分布式计算框架MapReduce
- 安装webpack后,执行webpack -v命令时报错:SyntaxError: Block-sc
- SpringMVC数据类型转换器与国际化配置
- 分布式资源调度——YARN框架
- 在SpringMVC中使用数据验证组件——hibernate-validator
- 我的 2020 iOS BAT 面试心得
- Java操作HDFS开发环境搭建以及HDFS的读写流程
- HDFS伪分布式环境搭建
- 初识Hadoop
- SpringMVC返回JSON数据以及文件上传、过滤静态资源