< 返回版块

rust 日报 babpstep 发表于 2024-06-05 00:44

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,只有少量的包,存在性能问题和语言服务器协议实现的错误。

作者的计划是,短期内提高性能,增加更多包,支持更多平台,长期目标则是成为管理软件项目的最佳方式,感兴趣的可以持续关注。

github主页

项目官网

undname: 处理 MSVC 的混淆符号

作者在处理混淆符号时对现有解决方案不满意,特别是 Win32 的 UnDecorateSymbolName 函数和 msvc-demangler 库。

具体的原因是,UnDecorateSymbolName 函数需要将字符串转换为 utf-16 编码,且存在缺陷和单线程限制,而 msvc-demangler 库仅支持 utf-8 编码输入,且缺少对多种混淆字符串的支持。

因此,作者创建了一个新的 Rust 库,旨在提供更准确、支持更广泛的混淆字符串格式,并且性能优于现有解决方案。有下面的特点:

  • 准确性:与 Microsoft 的实现相比,该库能更准确地处理混淆字符串。
  • 支持范围:支持广泛的混淆字符串格式,超过 msvc-demangler
  • 性能:在单次和批量解混淆应用中表现出色。

项目链接

-- From 日报小组 🕯RustPlumber🕯

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页