在Arduino Uno
上面跑 Rust 程序
很久之前,为了在 Arduino上跑 Rust,还必须安装专门经过改造支持 AVR 的 Rust 编译器 :rust-avr 。一个月之前,rust-avr 已经被合并到了 Rust master 分支,这意味着你在 Nightly 下就可以玩 Arduino了。并且包含了一本新书 The AVR-Rust Guidebook :https://book.avr-rust.com/rust-avr 项目官网:https://www.avr-rust.com/这篇文章就是一个教程。https://dev.to/creativcoder/how-to-run-rust-on-arduino-uno-40c0via https://t.me/rust_daily_news/4495
关于Rust用于深度学习的讨论
讨论的挺火热的,就加上来了。地址:https://www.reddit.com/r/rust/comments/igz8iv/deep_learning_in_rust/rust机器学习工作组:https://github.com/rust-ml和其他工作组一样有一个汇总网站:https://www.arewelearningyet.com/可能会用到的库:①、https://github.com/raskr/rust-autograd ②、https://github.com/spearow/juice
Rapier物理引擎的性能测试
Rapier在前两天公布源码的同时还发布了这篇blog。地址:https://www.dimforge.com/blog/2020/08/25/announcing-the-rapier-physics-engine/不仅有和box2d与physx的性能对比测试,这篇blog还将目前的功能与前作nphyscis进行了对比,并表示将在未来几个月将缺失的功能给完善。同时提供了Bevy的官方插件:https://github.com/dimforge/bevy_rapier论文中提到本来也有一个专门给Amethyst引擎实现的插件,但是目前Amethyst正在迁移他们的ECS后端。等这部分工作完成之后,才会给Amethyst提供官方维护的物理引擎插件。
Rust可视化编程的一个小演示
应该是他们可视化底层编程的书要出了,所以放出了这个小演示。地址(需要FQ):https://www.youtube.com/watch?v=zTpzyYtE5oY
前几天的Rustconf 2020,Tikv官网特意做了一个汇总
Read More:https://tikv.org/blog/rustconf-20/
一个新的sql数据库:GlueSQL
现在还处于非常早期的阶段,但是已经支持了基础的SQL查询。地址: https://github.com/gluesql/gluesql
修复include_bytes!
宏
include_bytes!
宏大家应该都用过,作者在使用的过程中发现并不是那么好用,有些地方不能达到作者的预期,这篇blog介绍了作者遇到的一些问题,以及作者是如何修复这些问题的。Read More:https://jack.wrenn.fyi/blog/include-transmute/
Rust中的多线程池
作者用Rayon
库写了一篇在rust中线程池的一篇教程。Read More:https://pkolaczk.github.io/multiple-threadpools-rust/
Constany
:将任何rust函数转换为const函数的crate
库的介绍文档有提到了这个库的一些原理。地址:https://github.com/moelife-coder/constany
Bevy
源码学习笔记-001
最近在看Bevy的源码,有些有趣的地方分享给大家。看的比较少,所以只找到一些简短的地方。因为对Bevy的资产处理不是太熟悉,所以优先看了这部分的源码。
// Properties这个宏的部分没看,不过当初看Bevy引擎介绍的时候
// 有说到这个是为了在Rust中实现类似其他语言中反射这种功能而特
// 意设计的
#[derive(Properties)]
pub struct Handle<T>
where
T: 'static,
{
// pub struct HandleId(pub Uuid);
pub id: HandleId,
#[property(ignore)]
marker: PhantomData<T>,
}
这部分源码我觉得是比较有意思的,因为除了Handle结构体之外,在这部分源码中还实现了另一个结构体:
#[derive(Hash, Copy, Clone, Eq, PartialEq, Debug)]
pub struct HandleUntyped {
pub id: HandleId,
pub type_id: TypeId,
}
大部分对Handle的操作方法都是实现在了Handle里的,那实现HandleUntyped的意义在哪里呢?源码自带的注释很好的解释了这一点:This allows handles to be mingled in a cross asset context. For example, storingHandle<A>
and Handle<B>
in the same HashSet<HandleUntyped>
.目前我也就只看了资产的部分,比较复杂的处理应该是AssetServer这部分,不过基本都是正常的代码,没有上面这种取巧的地方了。
推介一个B站Up主
前几天无聊的时候刷到B站一个用Rust刷力扣题目的Up主,视频质量杠杠的。但是一个视频的播放量低的可怜,有兴趣的观众可以关注一波地址:https://space.bilibili.com/202107274/建议从力扣刷题的部分看,我个人认为这是他系列里做的最好的。
This Week in Rust
喜闻乐见的第353期。