< 返回版块

洋芋 发表于 2023-04-09 07:37

Tags:rust, 日报

OctaSine 发布 v0.8.5

OctaSine 是一款免费开源的调频合成插件,支持 VST2 和 CLAP 格式,发布了 v0.8.5,最显著的新功能是新增了新的操作器波形,即方波、三角波和锯齿波形,使声音创造更加灵活。还修复了在 Windows 上清除库/补丁时崩溃的问题。

另外,它获得了本月 KVR Audio One Synth Challenge 的特色合成器。

GitHub 链接,https://github.com/greatest-ape/OctaSine

Rust 中模块化错误

这篇文章希望大家开始关注错误,并对其设计进行思考,并学习如何优雅地实现好回溯、可扩展性、检查性(错误匹配)、稳定性和模块化五个目标之间的平衡。

文章提出的错误处理的准则:

  • 利用.source()方法
  • 构建错误类型
  • From
  • 邻近性
  • 详细性

错误处理很难,但学会它是值得的。

博客原文链接,https://sabrinajewson.org/blog/errors

Faer 发布 v0.7

faer 是一个在纯 Rust 中实现低级线性代数例程的 crates 集合。其目标是最终提供一个功能齐全的线性代数库,侧重于可移植性、正确性和性能。

faer v0.7

  • 添加 to_owned 函数,用于将 MatRef/MatMut 转换为 Mat
  • 允许比较共轭矩阵
  • 改进了 f32c32c64 的性能
  • 改进了小/中型矩阵分解的性能
  • 重构了 ComplexField 特质以允许非 Copy 类型

GitHub 链接,https://github.com/sarah-ek/faer-rs

cargo-script的预提案

cargo-eval 是随 Rust 一起提供的新程序,可用于单文件cargo包,这些包是带有嵌入式清单的.rs文件。可以将其放置在#!行中以直接运行这些文件。清单将是一个模块级别的文档注释,其中包含以cargo为类型的代码围栏。

#!/usr/bin/env cargo-eval

//! ```cargo
//! [dependencies]
//! clap = { version = "4.2", features = ["derive"] }
//! ```

use clap::Parser;

#[derive(Parser, Debug)]
#[clap(version)]
struct Args {
    #[clap(short, long, help = "Path to config")]
    config: Option<std::path::PathBuf>,
}

fn main() {
    let args = Args::parse();
    println!("{:?}", args);
}
$ ./prog --config file.toml
Args { config: Some("file.toml") }

Pre-RFC 链接,https://internals.rust-lang.org/t/pre-rfc-cargo-script-for-everyone/18639


From 日报小组 洋芋

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页