#holochain #conductor #running #expanded #client #side #connect-ws

holochain-client-core

用于与正在运行的 Holochain 导航器通信的客户端 Rust 库

1 个不稳定版本

0.1.0 2020 年 2 月 18 日

#6 in #expanded

MIT 许可证

14KB
160

实现 ConductorClient 结构体,该结构体实现了 RpcChannel,因此可以使用 parity jsonrpc-core-client 产生客户端实例,可以在任何传输上调用。

警告!- jsonrpc-core-client 中客户端宏的限制阻止了其正常工作。当前在 lib.rs 中扩展并修复的宏。一旦问题得到解决,这将成为 lib,宏扩展可以按预期工作。

它还导出 connect_ws 函数,这是一个构建 WebSocket 连接的辅助函数。

基本示例

use holochain_client_core::{
    connect_ws, Future,
};
use url::Url;

fn main() {
    let client_url = Url::parse("ws://127.0.0.1:1234").unwrap();
    let client = connect_ws(&client_url).wait().unwrap(); // connect returns a future

    let result = client.zome_call( // calling a function also returns a future
        "instance_id".into(),
        "zome".into(),
        "fn_name".into(),
        serde_json::Value::Null,
    ).wait().unwrap();

    println!("{}", result)
}

使用不同传输(http)的示例

use holochain_client_core::{
    connect_ws, Future, ConductorClient,
}
use jsonrpc_core_client::transports::http;
use url::Url;

fn main() {
    let client_url = Url::parse("https://127.0.0.1:1234").unwrap();
    let client = http::connect<ConductorClient>(&client_url).wait().unwrap(); // connect returns a future

    let result = client.zome_call( // calling a function also returns a future
        "instance_id".into(),
        "zome".into(),
        "fn_name".into(),
        serde_json::Value::Null,
    ).wait().unwrap();

    println!("{}", result)
}

依赖项

~11MB
~222K SLoC