#分布式 #分布式系统 #集群 #计算 #ZK #任务执行 #MapReduce

paladin-core

一个 Rust 分布式算法工具集。无需分布式系统编程的复杂性,即可编写分布式算法。

13 个不稳定版本 (3 个破坏性更新)

0.4.2 2024年3月11日
0.4.1 2023年12月3日
0.3.3 2023年11月24日
0.2.0 2023年11月16日
0.1.3 2023年10月29日

#969 in 并发

Download history 16/week @ 2024-04-29 4/week @ 2024-05-06 15/week @ 2024-05-13 151/week @ 2024-05-20 28/week @ 2024-05-27 106/week @ 2024-06-03 198/week @ 2024-06-10 367/week @ 2024-06-17 599/week @ 2024-06-24 525/week @ 2024-07-01 611/week @ 2024-07-08 599/week @ 2024-07-15 524/week @ 2024-07-22 226/week @ 2024-07-29 383/week @ 2024-08-05 639/week @ 2024-08-12

每月 1,785 次下载

MIT/Apache

220KB
3K SLoC

Paladin

将神圣秩序带给分布式计算。

Crates.io version docs.rs docs

关于 Paladin 的两句话

Paladin 是一个 Rust 库,旨在简化编写分布式程序。它提供了一个声明式 API,让开发者可以清晰地表达他们的分布式程序,无需考虑分布式系统编程的复杂性。

特性

  • 声明式 API:清晰、轻松地表达分布式计算。
  • 自动分发:Paladin 的运行时无缝处理集群中的任务分发和执行。
  • 简化开发:专注于程序逻辑,将分布式系统的复杂性留给 Paladin。
  • 基础设施无关:Paladin 对其消息后端和基础设施提供商是通用的。使用您自己的基础设施!

示例

以下是一个(虚构的)典型 Paladin 程序的示例。

#[tokio::main]
async fn main() {
    let stream = IndexedStream::from([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
    // Compute the fibonacci number at each element in the stream.
    let fibs = stream.map(&FibAt);
    // Sum the fibonacci numbers.
    let sum = fibs.fold(&Sum);

    // Run the computation.
    let result = sum.run(&runtime).await.unwrap();
    assert_eq!(result, 143);
}

在这个示例程序中,我们定义了一个算法,用于在流中的每个元素上计算斐波那契数,然后求和结果。在幕后,Paladin 将将计算分布到集群中,并将结果返回到主线程。

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则您提交给作品以供包含在内的任何贡献,根据 Apache-2.0 许可证的定义,应如上所述双重许可,而无需任何附加条款或条件。

依赖关系

约 20-33MB
~548K SLoC