Brioche - 一个全新的包管理器和构建工具
Brioche 是一个全新的包管理器和构建工具,结合了 Nix、Homebrew 和 Cargo 等其他包管理器的优点,使用 TypeScript 进行类型检查和自动补全,近日发布了 0.1 版本。
Brioche 作者曾在 Tangram, Inc. 工作,并在那里获得了灵感,而作者也曾是 Nix 用户,但因为使用上的挫折而放弃。因此,Brioche 旨在保留 Nix 的最佳特性,同时设计得更少怪癖。
可以通过下面的方式,快速构建 rust 应用,并且完成 docker 打包
import * as std from "std";
import { cargoBuild } from "rust";
export default () => {
// Build a Rust project
const server = cargoBuild({
crate: Brioche.glob("src", "Cargo.*"),
});
// Put it in a container image
return std.ociContainerImage({
recipe: server,
entrypoint: ["/bin/server"],
});
}
目前这个版本,还存在一些问题,比如目前仅限于 x86-64 Linux,只有少量的包,存在性能问题和语言服务器协议实现的错误。
作者的计划是,短期内提高性能,增加更多包,支持更多平台,长期目标则是成为管理软件项目的最佳方式,感兴趣的可以持续关注。
undname: 处理 MSVC 的混淆符号
作者在处理混淆符号时对现有解决方案不满意,特别是 Win32 的 UnDecorateSymbolName
函数和 msvc-demangler
库。
具体的原因是,UnDecorateSymbolName
函数需要将字符串转换为 utf-16 编码,且存在缺陷和单线程限制,而 msvc-demangler
库仅支持 utf-8 编码输入,且缺少对多种混淆字符串的支持。
因此,作者创建了一个新的 Rust 库,旨在提供更准确、支持更广泛的混淆字符串格式,并且性能优于现有解决方案。有下面的特点:
- 准确性:与 Microsoft 的实现相比,该库能更准确地处理混淆字符串。
- 支持范围:支持广泛的混淆字符串格式,超过
msvc-demangler
。 - 性能:在单次和批量解混淆应用中表现出色。
-- From 日报小组 🕯RustPlumber🕯
社区学习交流平台订阅:
评论区
写评论还没有评论