pyoxidizer: Rust编写的Python应用分发工具
「博文」对Rust中错误传播的思考
「博文」2019期望:使用Rust制作和使用C兼容的库
#2019 #ffi
目前构建和安装共享库比较困难,尤其是在多个平台上。Cargo的能力目前还待扩展,Rust的ABI也未稳定,所以需要使用兼容C-ABI来和其他语言沟通。但是现在如果你的库想提供一个C绑定接口,目前还没有一个完美的解决方案。作者罗列了现存的问题,并且他计划在2019年尝试提供一些解决方案。
Ropey发布1.0版
Ropey是一个文本rope数据结构的实现,旨在成为文本编辑器等应用程序的后备文本缓冲区。
Rope一个二叉查找树。优势:
- Rope不需要连续的内存空间,不像数组
- Rope在字符串中进行插入和删除更快O(logn)。而在字符串数组中需要O(n)。
- 在进行数据copy时。Rope不需要额外的O(n)内存空间。
缺点
- 需要更多的内存空间,需要维护父节点。
- 增加代码的复杂度。
Mozilla招人了
很多岗位,包括Rust实习生。在美国的朋友有福了。
regex-automata: 使用DFA的正则表达式库
#no_std
支持no_std环境。与regex库的区别是:
- regex是通用的正则表达式引擎,对编译时间、搜索和内存使用有一个均匀的平衡,还提供了方便的API。
- regex-automata,则提供了更加底层的接口,可能对于用户来说不太方便,但它提供对内存使用和搜索时间更明确的控制。
Smithay发布0.2
Smithay旨在提供构建模块,以在Rust中创建Wayland合成器。基于wayland-rs实现。wayland-rs采用纯Rust实现,是Wayland协议的Rust实现,弃用了之前的C绑定。Wayland是一个协议定义了如何与内核通讯、如何与Client通讯等,Linux桌面X Client/X server的替代者。
Victorem: 一个基于UDP的简单游戏框架
提供Server和Client,方便用户创建简单的2D和3D游戏原型。项目刚发布,完成率还有点低,可以关注下。
「学术论文」利用Rust类型进行模块化规范和验证
论文的四个作者均来自于瑞士苏黎世联邦理工学院计算机科学系。文中声称利用了一种新的验证技术,利用Rust类型系统来简化Rust程序的规范和验证。
bytelines: 可以高效按字节切片读取输入行
声称,在不特别关心unicode的情况下,比lines()
的执行速度要快得多。
「流媒体技术」构建MPD索引
MPD(Media Present Description)可以非常简洁——只需要短短的几行表述就可以构建一个很大的媒体列表。
作者一般从SoundCloud下载音乐进行播放,但是过程很麻烦:必须浏览SoundCloud,下载一个看起来很有趣的曲目,将其上传到音乐服务器,让MPD将其编入索引,然后播放。所以作者用Rust制作了SoundClound音乐索引,文章记录了他的做法。
strength_reduce: 快速整数除法和模数运算
#no_std
支持no_std环境。
日报订阅地址:
欢迎通过GitHub issues投稿。