0.1.0 |
|
---|
#19 in #flink
36KB
601 代码行
Statefun Rust SDK
用于在Rust中编写状态函数的SDK。有关项目更多信息,请参阅Apache Flink Stateful Functions网站。
目前这个项目非常基础。我刚刚开始,还没有测试,可能还有一些错误。
lib.rs
:
用于在Rust中编写"状态函数"的SDK。用于与Apache Flink Stateful Functions (Statefun)一起使用。
示例
以下展示了如何编写一个简单的状态函数并使其在Statefun部署中使用。
use protobuf::well_known_types::StringValue;
use statefun_sdk::io::kafka;
use statefun_sdk::transport::hyper::HyperHttpTransport;
use statefun_sdk::transport::Transport;
use statefun_sdk::{Address, Context, Effects, EgressIdentifier, FunctionRegistry, FunctionType};
let mut function_registry = FunctionRegistry::new();
function_registry.register_fn(
FunctionType::new("example", "function1"),
|context, message: StringValue| {
let mut effects = Effects::new();
effects.send(
Address::new(FunctionType::new("example", "function2"), "doctor"),
message,
);
effects
},
);
let hyper_transport = HyperHttpTransport::new("0.0.0.0:5000".parse()?);
hyper_transport.run(function_registry)?;
该程序创建了一个FunctionRegistry,可以用于注册一个或多个函数。然后我们将闭包注册为一个状态函数。最后,我们需要创建一个Transport,在这种情况下是HyperHttpTransport来为我们提供状态函数。
请注意,您也可以在注册函数时使用函数而不是闭包。
依赖项
~14MB
~229K SLoC