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 - 一个独立的可嵌入其它游戏中的游戏机器人库

非常容易使用,比如:

  • tic-tac-toe
  • chess
  • oko

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,是一位有趣的开发者。svgbob,spongedown等,都是他的作品。

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

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

Repo

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

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

Repo

mamba - 用 Rust 写的一个语言

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

mamba

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

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

Read More Repo

【Rust日报】 2019-04-28相关推荐

  1. 信息安全实验四:RSA公钥加密算法 2019.04.28

    实验四:RSA公钥加密算法 一.实验目的 理解.掌握RAS公钥加密算法的基本过程. 二.实验内容 熟悉MPIR大整数运算库函数的调用. 利用MPIR大整数运算库函数,实现RSA公钥加密算法.要求:1) ...

  2. rust主播排行_「Rust日报」2019每周精选 • 第四期

    前言: 从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛.tg channel.Steemit.GitHub.语雀订阅都开通了Rust日报,分享我每天的见闻,偶尔也夹 ...

  3. D2 日报 2019年1月2日

    官网阅读获得更好的体验,传送门<日报 2019年1月2日> 你有一个苹果,我有一个苹果,交换之后我们还是各自有一个苹果. 你有一份知识,我有一份知识,我们互相分享一下就都有了两份知识. 开 ...

  4. 【Rust日报】 2019-08-01:brpc-rs - X-lab 实验室新推出的一个rpc库

    paperclip - OpenAPI 规范的 Rust 实现 在完成后,它会实现: Rust 中的服务器端.客户端和命令行端的高效的.编译时检查的.类型安全的 HTTP API 的生成: 支持处理. ...

  5. D2 日报 2019年6月3日

    ? 开源项目 ➡️ Simonwep/pickr 非中文 watch 13 star 1514 fork 65 一个简单,无依赖的颜色选择器组件 github.com ➡️ scrumpy/tipta ...

  6. 2019.04.18晚上 玄易财富 ---老承

    2019.04.18晚上    玄易财富  ---老承 今晚我们分享---中国牛市历次特征 三月份最后一个交易日,沪指强力拉升近100点至3100点关口.券商板块大涨8个多点,保险银行也在平静中轮动起 ...

  7. D2 日报 2019年4月11日

    ? 新闻 ➡️ C++力压Python进入最受欢迎编程语言前三 www.infoq.cn ➡️ Opera introduces Reborn 3, the first desktop browser ...

  8. D2 日报 2019年6月11日

    ? 开源项目 ➡️ sfyc23/EverydayWechat watch 34 star 1690 fork 317 每日自动给女朋友发微信暖心话. github.com ➡️ YMFE/yapi ...

  9. D2 日报 2019年4月17日

    ? 新闻 ➡️ Is React Translated Yet? ¡Sí! Sim! はい! react 文档翻译了多种语言 reactjs.org ? 开源项目 ➡️ formal/packages ...

  10. Netrunner 2019.04 Rolling 版本发布

    开发四年只会写业务代码,分布式高并发都不会还做程序员? >>>   Netrunner 2019.04 Rolling 版本发布了,Netrunner 是基于 Ubuntu 的发行, ...

最新文章

  1. 修改密码后服务器断开连接,SSH无需密码登录服务器且保持连接不断开的方法
  2. 交换机与集线器的区别
  3. 自律到极致-人生才精致:第2期
  4. python 获取类名
  5. 全球及中国水深测量声呐行业应用前景及未来投资决策建议报告2022-2027年
  6. numpy 图片填充_numpy/python中的洪水填充分割图像
  7. Lambda表达式最佳实践
  8. MATLAB成形滤波、信号过信道
  9. javascript option 菜单图标_苹果电脑上神奇的Option键 巧用option键提升效率
  10. R语言第八讲 评估模型之交叉验证法分析案例
  11. php mysql 开发微博_php+mysql基于Android的手机微博应用开发
  12. 【elasticsearch】elasticsearch 7 index.lifecycle.rollover_alias does not point to index
  13. 使用Ant制作发布版本
  14. 最长上升子序列模板 hdu 1087 Super Jumping! Jumping! Jumping!
  15. pmbok第六版_英文版(带目录).pdf_书籍分享 | 高等数学(第六版)含解析~同济大学...
  16. java之读取文本字符串
  17. 故宫元宵灯会票务系统崩溃背后:年游客达1700万人
  18. Acwing第741题(斐波那契数列)
  19. Ignoring invalid timezone passed to Connection
  20. 动态二维码刷卡触摸按键门禁一体机性能与选型攻略

热门文章

  1. python中flag标志用法_标记变量flag的用法
  2. 使用 Colab 训练 Pytorch-Yolov4 (WongKinYiu版)
  3. 关于彻底删除捆绑软件的解决方案
  4. linux 编辑 iso文件格式,这两款实用的光盘映像文件制作编辑软件让你处理ISO文件易如反掌...
  5. OpenCV实现摄像头录像
  6. 两个线程交替打印A1B2C3D4E5输出,6种实现方式
  7. php empty是什么意思,php empty 和空字符串区别
  8. python调用gpu amd_TensorFlow通过AMD GPU加速(ROCm/Ubuntu 18.04)
  9. tas5707php,TAS5707PHP
  10. mac 电脑 打开隐藏文件