SsoBox - 小尺寸优化的 Box
SsoBox
是一个类似 Box
的类型,它通过小尺寸优化避免了不必要的内存分配。
如果存储的值足够小,SsoBox
会将其直接存储在原本用于存储指针的空间中,从而节省了分配和释放内存的开销。
文章通过示例代码展示了其使用方法,并分析了其性能表现。虽然 SsoBox
在访问时会有一些额外开销,但在创建和销毁小尺寸对象时性能显著提升。
作者还讨论了其在 Pin
和 CoerceUnsized
等特性上的限制,并提出了未来可能的改进方向。
阅读:https://kmdreko.github.io/posts/20250614/a-simple-small-size-optimized-box/
仓库:https://github.com/kmdreko/ssobox
Reddit:https://www.reddit.com/r/rust/comments/1lbcqi5/a_simple_smallsize_optimized_box/
Xailyser - 深度数据包检测工具
Xailyser 一个基于 Rust 的深度包检测 (DPI, Deep Packet Inspection) 平台,用于分析网络协议。
DPI 是一种基于应用层的流量检测和控制技术,能够对网络数据包进行深入分析,识别和管理网络流量。
与 Wireshark 等单体工具不同, xailyser 分为三个部分:
- DPI 库:用于数据包捕获和协议解析的核心 Rust 板条箱,旨在作为添加您自己的自定义和其他未实现的协议的基础。
- 服务器:通过 libpcap 捕获数据包,分析流量并通过 WebSocket ( tungstenite‑rs ) 传输 JSON。
- 客户端:使用 egui 构建的跨平台桌面应用程序(Windows/Linux/macOS),可可视化实时流量图表、设备别名和数据包详细信息。
一些亮点:
- 开箱即用,支持 12 种协议(ARP、DHCP v4/v6、DNS、Ethernet II、HTTP、ICMP、IP、TCP、UDP)
- 实时字节/数据包计数器和图表
- 通过 Wireshark OUI 数据库查找供应商
- 使用 IANA 端口数据库进行服务识别
- 用户配置文件和设备别名,方便监控
- 完全可配置的压缩、本地化、主题等
仓库:https://github.com/xairaven/xailyser
Reddit:https://www.reddit.com/r/rust/comments/1lbo0se/introducing_xailyser_my_rustbased_deep_packet/
Untwine - 更漂亮的解析器生成器
Untwine 是一个用于解析语言的工具包,适用于编程语言、领域特定语言和用户友好型解析器。
它比 Pest 更优雅,错误信息更清晰,并有自动错误恢复功能。
Untwine 通过 parser!
宏提供自定义语法,避免手动使用解析器组合子。
它有一个教程,通过布尔表达式解析器和句子解析器的示例,展示了如何定义解析规则、处理操作符和括号、以及使用匹配语法简化代码。它还讨论了如何处理空白符、避免解析错误(如左递归和模式冲突),并提供了运行解析器的方法。
教程:https://github.com/boxbeam/untwine/blob/master/TUTORIAL.md
Reddit:https://www.reddit.com/r/rust/comments/1lbefyl/untwine_the_prettier_parser_generator_more/
Hypershell - 编写类型级 Shell 脚本的 DSL
Hypershell 是一个基于 Rust 的类型级领域特定语言(DSL),用于编写类似 shell 脚本的程序。
它通过上下文泛型编程(CGP)实现,允许用户扩展或修改语言的语法和语义。
Hypershell 的核心是 Handler
组件,通过 CGP 的依赖注入和特质实现高度模块化。
它支持多种 handlers,如 SimpleExec
和 StreamingExec
,并可通过 Pipe
组合处理器形成复杂管道。
Hypershell 的实现完全基于类型系统,利用 Rust 的零成本抽象实现高性能。
它还支持通过扩展预设(如 HypershellPreset
)轻松添加新语法和功能,例如通过 Checksum
和 BytesToHex
实现原生哈希计算。
Hypershell 的设计目标是展示 CGP 在构建高度模块化 DSL 方面的能力,并激发开发者对 CGP 的兴趣。
阅读:https://contextgeneric.dev/blog/hypershell-release/
仓库:https://github.com/contextgeneric/hypershell
Reddit:https://www.reddit.com/r/rust/comments/1lb296n/announcing_hypershell_a_typelevel_dsl_for/
Rustle - 阻止扬声器进入休眠状态的小工具
Rustle 是一个基于 Rust 的轻量级音频流生成器,用于防止 Linux 系统中的扬声器因长时间无音频信号而进入睡眠模式。
它通过生成周期性的低频正弦波脉冲来重置扬声器的静默计时器。
仓库:https://github.com/rasmus-kirk/rustle
Reddit:https://www.reddit.com/r/rust/comments/1lb95v0/very_short_rust_program_that_keeps_your_speakers/
Shields.rs - 与 shields.io 兼容的徽章渲染器
shields.rs
是一个高性能的徽章渲染引擎,用 Rust 编写,支持 SVG 输出和字体解析。
它比 Node.js 的 badge-maker 快 10 倍以上,支持所有主要徽章样式(如 flat
、plastic
等),并提供链式 API 用于自定义徽章。
它可以获得更好的性能,并且允许 Rust 程序直接生成徽章 svg,而无需依赖外部服务。
而 shields.io 有一些限制,例如,如果请求的时间消耗超过 4 秒,它就无法获取正确的徽章,并且它有最短的缓存时间。这些限制在某些用例中可能会很烦人。
仓库:https://github.com/Jannchie/shields.rs
Reddit:https://www.reddit.com/r/rust/comments/1lb3wab/made_a_rust_shieldsiocompatible_badge_renderer/
--
From 日报小组 苦瓜小仔
社区学习交流平台订阅:
评论区
写评论还没有评论