< 返回版块

Mike Tang 发表于 2024-12-11 00:51

2025年了,大家都用哪些crates

这是作者的一些常用crates列表:

根据文件内容,这里是作者提到的 Rust crates 列表及其用途:

Connectivity

  • tokio: 异步运行时,支持 HTTP 和其他协议。
  • axum: 用于构建 HTTP(S) 服务器,支持路由、状态共享等。
  • tower-http: HTTP 中间件,例如认证和请求验证。
  • reqwest: HTTP 客户端,支持 rustls。
  • warp: 用于构建轻量级 HTTP 服务器。
  • prosttonic: 用于 protobuf 和 gRPC。
  • lapin: RabbitMQ 客户端。

Serialization & Data

  • serdeserde_json: 序列化和 JSON 处理。
  • bincode: 二进制序列化,用于高效存储。
  • humantime-serde: 支持人类可读的时间格式序列化。

Error Handling

  • thiserror: 用于库的错误处理。
  • anyhow: 用于应用的错误处理。

Testing

  • rstest: 参数化测试和 fixtures。
  • criterion: 性能基准测试工具。

Utilities

  • rustc-hashsha1_smol: 非加密的高效哈希。
  • tikv-jemallocator: 用于优化内存分配。
  • uuid: 支持 UUID 生成和解析。
  • chrono: 时间和日期处理。
  • derivative: 自定义派生的 trait 实现。
  • image: 图像处理。

CLI

  • arghclap: CLI 解析。

Logging, Tracing and Metrics

  • tracing: 结构化日志和跟踪。
  • prometheus: 用于监控指标。

SQL & ORMs

  • sea-ormsea-query: ORM 和查询构建工具。
  • sqlx: 异步数据库操作。

Vectors, Arrays, ML

  • ndarraynalgebra: 数组和线性代数。
  • half: 支持 f16 类型。
  • approx: 浮点数近似比较。
  • ort: ONNX 运行时,用于机器学习推理。

Deprecated or Alternative Crates

  • lazy_static: 已被 LazyLock 取代。
  • once_cell: 可使用标准库中的 OnceLock
  • async-trait: 在某些情况下仍需使用,但已逐渐被 async 函数支持替代。

https://ohadravid.github.io/posts/2024-12-state-of-the-crates/

--

From 日报小组 Mike

社区学习交流平台订阅:

评论区

写评论
AmosRyan 2024-12-12 10:15

找到问题所在了,原来包裹在自定义宏里面的😓

use bevy_app::{plugin_group, Plugin};

plugin_group! {
    /// This plugin group will add all the default plugins for a *Bevy* application:
    pub struct DefaultPlugins {
        bevy_app:::PanicHandlerPlugin,
        bevy_log:::LogPlugin,
        bevy_core:::TaskPoolPlugin,
        bevy_core:::TypeRegistrationPlugin,
        bevy_core:::FrameCountPlugin,
        bevy_time:::TimePlugin,
        bevy_transform:::TransformPlugin,
        bevy_hierarchy:::HierarchyPlugin,
        bevy_diagnostic:::DiagnosticsPlugin,
        bevy_input:::InputPlugin,
        ...
}

--
👇
AmosRyan: 今天看bevy源代码,里面出现了bevy:::LogPlugin这样的用法,请出注意那里是三个":",有人见过么,我去rust-lang搜索也没找到三个":"的说明呢?

AmosRyan 2024-12-12 10:11

今天看bevy源代码,里面出现了bevy:::LogPlugin这样的用法,请出注意那里是三个":",有人见过么,我去rust-lang搜索也没找到三个":"的说明呢?

1 共 2 条评论, 1 页