24个版本

0.7.12 2024年6月24日
0.7.10 2024年5月9日
0.7.9 2024年1月25日
0.7.8 2023年12月20日
0.2.1 2021年7月14日

#122 in 网络编程

Download history 1334/week @ 2024-04-29 3335/week @ 2024-05-06 2885/week @ 2024-05-13 2540/week @ 2024-05-20 2087/week @ 2024-05-27 2407/week @ 2024-06-03 2062/week @ 2024-06-10 2021/week @ 2024-06-17 2708/week @ 2024-06-24 2572/week @ 2024-07-01 2947/week @ 2024-07-08 1922/week @ 2024-07-15 2576/week @ 2024-07-22 2590/week @ 2024-07-29 2588/week @ 2024-08-05 2151/week @ 2024-08-12

每月10,062次下载
用于 14 个crate(直接使用4个)

MIT/Apache

355KB
1.5K SLoC

Metainfo

Crates.io Documentation License Build Status

跨组件传递metainfo。

快速开始

Metainfo旨在通过任务本地传递,因此我们为它提供了一个统一的关键字 metainfo::METAINFO,我们建议您这样使用

METAINFO.scope(...)

MetaInfo 用于在组件之间甚至客户端-服务器之间传递信息。

它支持两种类型的信息:类型化映射和字符串键值对。

它被设计成树状结构,这意味着您可以将 MetaInfo 与多个子节点共享。

注意:只有当前作用域是可变的。

示例

use metainfo::MetaInfo;

fn test() {
    let mut m1 = MetaInfo::new();
    m1.insert::<i8>(2);
    assert_eq!(*m1.get::<i8>().unwrap(), 2);

    let (mut m1, mut m2) = m1.derive();
    assert_eq!(*m2.get::<i8>().unwrap(), 2);

    m2.insert::<i8>(4);
    assert_eq!(*m2.get::<i8>().unwrap(), 4);

    m2.remove::<i8>();
    assert_eq!(*m2.get::<i8>().unwrap(), 2);
}
  • Volo:一个高性能且强扩展性的Rust RPC框架,帮助开发者构建微服务。
  • Volo-rs:包含许多有用组件的volo生态系统。
  • Motore:由GAT支持的中间件抽象层。
  • Pilota:一个纯Rust实现的thrift和protobuf,具有高性能和可扩展性。

贡献

有关更多信息,请参阅 CONTRIBUTING.md

许可证

Metainfo根据MIT许可证和Apache许可证(版本2.0)双许可。

有关详细信息,请参阅 LICENSE-MITLICENSE-APACHE

社区

依赖项

~1.5–3MB
~43K SLoC