< 返回版块

Mike Tang 发表于 2019-04-28 14:07

Tags:rust

Rust 嵌入式开发的一个小示例:用一个LED灯说出 Hello world

要用一个 LED 灯说出 Hello world。当然是需要用到莫尔斯编码啦(就是港警匪片中经常出现的那个用手指或枪有节奏地发出声音的那个信号序列)。

就像下面这个样子,

img

视频地址 需fq。

作者参考了 The Embedded Rust Book 和这个样板项目

用了 openocd 来调试。然后向代码中灌入了:

.... . .-.. .-.. ---  .-- --- .-. .-.. -..

作为数据源,小板子就闪起来了。

结果 ...- . .-. -.-- -.-. --- --- .-.. -.-.-- (verycool)

Read More

Rust 官方已经在做支持 UWP(Universal Windows Apps) 编译目标的工作了

UWP 在Win10 Mobile, Xbox One, HoloLens 上使用,虽然Win10手机已经死翘翘了,但是另外两样很有竞争力啊。所以Rust官方还是要支持的。

Read More

使用 crossterm 进行跨平台终端应用开发

Rust世界中终端库很多,但是完全跨平台的终端库不多,crossterm 算一个。下面是用它开发的Pikachu.

来看看 3D 效果

Read More
Repo

rust-proctitle :安全的设置进程名称的库

主要卖点在它是跨平台的。

Read More

韩国一家金融公司已经把 Rust 用在了一个正式的盈利的高频交易项目上

当然,是没有开源的啦。作者只是在reddit上通报了一声,说了一下这个项目的大致情况。

这个项目在16个月前立项。上线交易近10个月,盈利9个月。交易策略重写花了7个月,上线部署花了1个月。最终的效果是Rust在各方面都打败了c++版本,虽然只是一点点性能提升。不过作者还没有提到安全性和稳定性的问题。

高频交易按道理说,应该是Rust能展示威力的地方,只是这块儿非常敏感,所以试水比较缓慢,现在终于有人出来公开宣传了。赞赞赞!

Read More

在 no_std 下,如何做序列化

这是一个不常见的问题,但是如果是针对嵌入式设备编程,或手持设备进行游戏开发。这会是一个重要问题。作者给了以下3个要求:

  1. 只有 64M RAM
  2. 磁盘上的空间使用应该尽可能小,比如应该用二进制存储而不是JSON
  3. 能支持 no_std,也能支持其它目标

最后作者把 quick-protobuf 拿过来改了改,满足了要求。

Read More

rubot - 一个独立的可嵌入其它游戏中的游戏机器人库

非常容易使用,比如:

Repo

futures-codec: 配合 Future 0.3 进行流编解码的库

用过 tokio_codec 的都知道,我们需要用 poll 不断去检查流有没有输出结果,并对 Ready 还是 NotReady 返回分别判断处理,现在有了这个库,就可像下面这样更“符合人性”直观地写了:

async move {
    // let stream = ...
    let mut framed = Framed::new(stream, LinesCodec {});

    while let Some(line) = await!(framed.try_next())? {
        println!("{:?}", line);
    }
};

这个库只是Future 0.3 大生态的一部分。这个生态还是慢慢完善当中。

Repo

offst - 去中心化的支付系统

这个支付系统看起来很有趣。它有如下特性:

  • 有效快速支付。Offst不依赖于一个区块链或者任何形式的PoW。每个交易只影响网络中的一小部分节点。支付通常在一秒内完成。
  • 低支付费用。支付费用只由支付经过的路由长度决定。路径上的每个路由参与者只得到一份credit。
  • 公正的资产分布。Offst系统中总的 credits 是0,并且最终会在所有成员之间公正分布。
  • 如果你丢失了Key,你可以向你的朋友请求恢复你的账户。
  • 拒绝审查。没有任何实体可以阻止或审核你的交易。
  • 完全原始控制。Offst是可编程的,可以二次开发,方便地定制上层应用。

这套系统背后的原理请阅读下文。个人感觉很有意思。

Read More
Read More 2
Repo

warmy - 通用的热加载/重载资源库

我们的在线系统中,经常会有些资源文件(如配置更改),需要重新加载。最简单的方式当然是把服务停掉,重启。但是对于高可用度在线服务来讲,这是不可取的。要么就把配置存数据库或缓存redis等。现在有了这个库,你按它指导的方式进行编程,就可以实现我们想要的目的(不需要数据库)。具体需要试用后才知道好不好用。

它还有资源发现的功能。

Repo

rividb - 一个简单的内存并行解析析数据库

作者强调高性能。

Repo

sauron - 一个 Web 前端开发框架

什么,又来一个。跟 yew 有什么区别?这个库是仿 elm 的风格做的。其实,也是基于 yew 之上的封装。目标是易用,好用。

作者:ivanceras,是一位有趣的开发者。svgbobspongedown等,都是他的作品。

karaoke-rs - Rust 写的音乐播放器(在浏览器中)

有点好玩儿。有需要关于音乐文件处理的方面内容的同学,可以借鉴。

Repo

Rubble - BLE(低功耗蓝牙),零分配协议栈

Rust嵌入式开发中需要用到的库。

Repo

mamba - 用 Rust 写的一个语言

mamba语言翻译器会把 mamba 代码翻译成 python 代码。所以,它的后面,就是 Python 生态。

mamba

luminance-rs - 类型安全,无状态的 Rust 图形框架

这之前是一个 haskell 项目,作者把它移值到了 rust 中来,然后顺便分析了一下当前 Rust 中图形框架目前的生态。作者看起来很雄心勃勃。下面的博文非常好。可以关注。

Read More Repo


From 日报小组 @Mike

日报订阅地址:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页