29 个版本 (1 个稳定版)
使用旧的 Rust 2015
1.0.0 | 2018年8月25日 |
---|---|
0.7.0 | 2017年4月17日 |
0.6.1 | 2017年3月27日 |
0.5.5 | 2016年11月25日 |
0.1.3 | 2015年7月8日 |
#2 in #charm
每月下载 27 次
用于 2 个 crate(通过 charmhelpers)
50KB
956 行
Juju
Rust 库用于与 Juju 交互。
此库使得用 Rust 编写 charm 变得非常容易,同时享受 Rust 带来的好处:静态类型、最小依赖和乐趣!
构建
此库需要 sqlite3-dev 来构建,因为依赖于 rusqlite
lib.rs
:
一个用于与 Juju 交互的库。有关 Juju 的更多信息,请参阅 Juju
Rust 语言编写的 hello world Juju charm 示例:要使此示例正常工作,您需要一个可工作的 Juju 环境。请参阅 [设置 Juju] (https://jujucharms.com/docs/stable/getting-started)。Juju 运行正常后,请参阅 什么是 Charm 了解 charm 的基本组件。
我们的 src/main.rs 将包含以下内容
示例
#[macro_use]
extern crate juju;
extern crate log;
use log::LogLevel;
fn config_changed()->Result<(), String>{
juju::log("Hello Juju from Rust!", Some(LogLevel::Debug));
return Ok(());
}
fn main(){
let hook_registry: Vec<juju::Hook> = vec![
hook!("config-changed", config_changed)
];
let result = juju::process_hooks(hook_registry);
if result.is_err(){
juju::log(&format!("Hook failed with error: {:?}", result.err()),
Some(LogLevel::Error));
}else{
juju::log("Hook call was successful!", Some(LogLevel::Debug));
}
}
现在您可以使用 cargo build
来构建,并在 hooks 目录中安装二进制文件。
在 hooks 目录中创建一个符号链接,使用 ln -s hello-world config-changed
。Juju 将尝试运行该符号链接,并且我们的 Juju 库将将其映射到我们的 config_changed 函数。
我们可以通过使用 juju 部署来测试我们的 hello-world charm,并查看调试日志。有关更多信息,请参阅 部署 charm。
你应在juju的调试日志中看到如下信息:unit-hello-world-0[6229]: 2015-08-21 16:16:05 INFO unit.hello-world/0.juju-log server.go:254 Hello Juju from Rust!
依赖项
约26MB
约491K SLoC