> 作者:小黎的部落 | 日期:2026-10-30 | 系列:Rust 基础设施工具集

本文介绍工具集中剩余的 5 个模块,它们各有特色,在特定场景下非常实用。

一、orca-channel — 统一消息通道抽象

核心能力

提供 LocalChannel(进程内)、BroadcastChannel(广播)和 Go 风格 ChannelSelector(多路选择)。

亮点:Go 风格 Select

use orca_channel::{ChannelSelector, LocalChannel};

let (tx1, mut rx1) = LocalChannel::new(1);
let (tx2, mut rx2) = LocalChannel::new(1);

tx1.send("from channel 1").await?;

// 同时监听两个通道,哪个先就绪就处理哪个
let selector = ChannelSelector::new()
    .add_recv(&mut rx1, |msg| println!("通道1: {}", msg))
    .add_recv(&mut rx2, |msg| println!("通道2: {}", msg));

selector.select().await;

适用场景

二、orca-serialize — 统一序列化层

核心能力

提供 JSON/Bincode/MessagePack/Protobuf 四种格式的统一 Serializer/Deserializer 接口。

亮点:运行时切换格式

use orca_serialize::prelude::*;

fn save_data(data: &MyStruct, format: Format) -> SerializeResult<Vec<u8>> {
    match format {
        Format::Json => JsonSerializer::serialize(data),
        Format::Binary => BinarySerializer::serialize(data),
        Format::Protobuf => ProtobufSerializer::serialize(data),
    }
}

适用场景

三、orca-apex-algebra — 约束代数与调度引擎

核心能力

提供 Constraint/ConstraintExpr/Domain 抽象,将声明式约束编译为可执行调度计划。

亮点:声明式约束

use orca_apex_algebra::prelude::*;

// 任务 A 必须在任务 B 之前执行
let constraint = Constraint::new("task_order")
    .require("task_a")
    .before("task_b");

// 任务 C 需要至少 2 个 CPU
let resource = Constraint::new("cpu_req")
    .require("task_c")
    .with_resource("cpu", 2);

let scheduler = Scheduler::new();
scheduler.add_constraint(constraint);
scheduler.add_constraint(resource);
let schedule = scheduler.compile()?;

适用场景

四、orca-logging — 结构化日志

核心能力

支持文件/控制台/内存环形缓冲三种输出,五级日志过滤,工厂模式创建。

亮点:内存环形缓冲

use orca_logging::LoggerFactory;

let (logger, memory) = LoggerFactory::create_with_memory("my-app", 100);

logger.info("第一条日志");
logger.warn("警告信息");
logger.error("错误信息");

// 查看最近 2 条日志
let recent = memory.recent(2);
for entry in recent {
    println!("[{}] {}: {}", entry.level, entry.module, entry.message);
}

适用场景

五、orca-operator — K8s Operator 框架

核心能力

提供 CRD 定义、Controller 协调循环和 Sidecar 注入器。

适用场景

六、总结

这 5 个模块虽然不如前 6 个高价值模块那样在 Rust 生态中稀缺,但它们在各自领域都有独特的设计亮点,值得参考和使用。

七、下载

模块下载大小
orca-channel[orca-channel.tar.gz](/downloads/orca-channel.tar.gz)15.8 KB
orca-serialize[orca-serialize.tar.gz](/downloads/orca-serialize.tar.gz)8.2 KB
orca-apex-algebra[orca-apex-algebra.tar.gz](/downloads/orca-apex-algebra.tar.gz)5.1 KB
orca-logging[orca-logging.tar.gz](/downloads/orca-logging.tar.gz)3.6 KB
orca-operator[orca-operator.tar.gz](/downloads/orca-operator.tar.gz)16.9 KB
← 返回文章列表