首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Rust日报】2020-08-27 在Arduino Uno上面跑 Rust 程序

【Rust日报】2020-08-27 在Arduino Uno上面跑 Rust 程序

作者头像
MikeLoveRust
发布2020-09-07 15:14:31
发布2020-09-07 15:14:31
1.4K0
举报

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-40c0

via 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的资产处理不是太熟悉,所以优先看了这部分的源码。

代码语言:javascript
复制
// 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结构体之外,在这部分源码中还实现了另一个结构体:

代码语言:javascript
复制
#[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, storing Handle<A> and Handle<B> in the same HashSet<HandleUntyped>.

目前我也就只看了资产的部分,比较复杂的处理应该是AssetServer这部分,不过基本都是正常的代码,没有上面这种取巧的地方了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rust语言学习交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在Arduino Uno上面跑 Rust 程序
  • 关于Rust用于深度学习的讨论
  • Rapier物理引擎的性能测试
  • Rust可视化编程的一个小演示
  • 前几天的Rustconf 2020,Tikv官网特意做了一个汇总
  • 一个新的sql数据库:GlueSQL
  • 修复include_bytes!宏
  • Rust中的多线程池
  • Constany:将任何rust函数转换为const函数的crate
  • Bevy源码学习笔记-001
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档