Resonators 0.1:用于实时频谱分析的 Rust 库发布
一位开发者在 r/rust 社区发布了他们的首个 Rust crate——Resonators 0.1,这是一个实现实时频谱分析的库。
主要特点
- 核心功能:实现了 Alexandre François 的 Resonate 算法,可以在无需窗口或缓冲区的情况下实时计算 STFT 和 CQT 类型的频谱图
- 跨平台支持:提供 Python 和 WASM 绑定,解决了原 C++ 参考实现依赖 Apple Accelerate 框架、无法在 Ubuntu 上运行的问题
应用场景
- 用于计算实时音乐转录模型训练的特征
- Python 绑定便于集成到 PyTorch 训练环境
- WASM 绑定支持浏览器端推理
演示项目
- 创建了浏览器演示,可实时可视化麦克风输入,使用对数刻度(音乐性)频率分段
- 同时支持桌面和移动设备
- 性能优异:在 iPhone 上的运行速度甚至快于 M2 MacBook Pro
技术栈
开发过程中学习和使用了多项技术:cargo bench/criterion、SIMD、maturin、PyO3、wasm-bindgen/wasm-pack、uv 脚本、AudioWorkletNode 等
原文链接:https://www.reddit.com/r/rust/comments/1st2en4/resonators_01_a_rust_crate_for_realtime_spectral/
gin-tonic 0.8 发布
gin-tonic 是一个 Rust protobuf 库,允许直接在传输层使用自定义类型,无需手动转换样板代码。
核心功能
- 提供 Protobuf 序列化和反序列化(类似 prost)
- 代码生成器(替代 prost-build)
- tonic 编解码器实现
- tonic-build 的增强包装器
Scalartrait,可将任意 Rust 类型直接映射到 protobuf 传输类型
解决的问题
传统方式的痛点:
使用 prost 时,protobuf 中的 string my_uuid 会生成 Rust 的 String 类型,但实际需要 uuid::Uuid,导致需要在各处编写转换代码并处理解析错误。
gin-tonic 的解决方案:
通过在 .proto 文件中添加注解指定 Rust 类型:
直接生成所需的 uuid::Uuid 类型,转换逻辑统一在 Scalar trait 实现中处理。
主要特性
- 内置 UUID 支持: 提供
uuid_string和uuid_bytes两种特性标志 - 自定义类型支持: 通过实现
Scalartrait 可支持任意类型
原文链接:https://www.reddit.com/r/rust/comments/1stm5wc/gintonic_08/
Jujutsu——新一代版本控制系统
Jujutsu 是一个功能强大的软件项目版本控制系统,旨在为新手和经验丰富的开发者提供易用的体验,适用于个人项目和大型团队协作。
核心特点
架构创新
- 将用户界面和版本控制算法与存储系统分离,可支持多种物理后端(如 Mercurial、Breezy 等)
- 目前使用 Git 仓库作为存储层,兼容现有 Git 工具生态
- 提交和文件存储在 Git 中,而分支和元数据存储在自定义存储中
设计灵感来源
Git
- 注重性能和速度,优化算法和数据结构
- 使用 Git 作为默认物理存储后端,便于互操作
Mercurial & Sapling
- 采用 revset 语言选择提交
- 无需暂存区(staging area)
- 匿名分支设计,无需为小改动命名
- 强大的历史重写功能
- 可配置的模板语言
原文链接:https://github.com/jj-vcs/jj
Rust 标准库发现安全漏洞
Rust 基金会最近获得了 Claude Mythos 的访问权限,并使用它来审查标准库中的安全问题。
关键要点
- AI 辅助安全审计:Rust 基金会使用 Claude Mythos AI 对 Rust 标准库进行安全审查
- 漏洞披露策略:更严重的问题目前处于保密状态,部分较轻微的问题已公开
- 已公开的两个漏洞:
CString::clone_into()中分配失败时可能出现越界写入slice::join()在特定病态Borrow实现下可能发生堆溢出
- 协作修复:感谢 Rust 基金会、wg-security-response 工作组和 Anthropic 公司合作发现并修复这些问题
相关链接
- 漏洞修复 PR:#155707 和 #155708
原文链接:https://www.reddit.com/r/rust/comments/1su53vz/standard_library_unsoundness_found_by_claude/
From Rust中文社区 Mike
社区学习交流平台订阅:
评论区
写评论还没有评论