快速上手

本节将展示连接 server,执行脚本,上传数据等基本操作。

准备

首先创建 Rust 程序,例如:

cargo new my_app

在 Cargo.toml 的 dependencies 中加入Dolphindb Rust API,以 3.2.1 版本为例:

[dependencies]
dolphindb = "3.2.1"
tokio = "1.41"

快速开始

Rust API 运行时需要与 DolphinDB server 交互,本章中的例子假设您的 server 运行在本地 127.0.0.1 且使用默认端口 8848 ,用户名与密码均为 server 的初始值。

src/main.rs 中编写以下代码:
use std::collections::HashMap;

use dolphindb::client::ClientBuilder;

#[tokio::main]
async fn main() {
    // 由于客户端支持多种配置,我们提供了 ClientBuilder 工具类辅助创建客户端对象
    // 首先您需要提供 server 的 ip 地址与端口号
    let mut builder = ClientBuilder::new("127.0.0.1:8848");

    // 此处我们使用默认的用户名与密码
    builder.with_auth(("admin", "123456"));

    // 配置完成后执行 connect 方法
    // 连接成功时返回用于交互的 client 对象
    let mut client = builder.connect().await.unwrap();

    // client 的基础功能之一是执行 DolphinDB 脚本
    // 此处在服务端创建了一个 pair 对象
    let res = client.run_script("a = pair(`a, `b)").await.unwrap();

    // 如果 DolphinDB 脚本没有返回值,返回的 res 是 None
    if let Some(ref c) = res {
        println!("{}", c);
    }
    // 如果 DolphinDB 脚本有返回值,返回的 res 是 ConstantImpl 对象
    let res = client.run_script("a").await.unwrap();
    if let Some(ref c) = res {
        println!("{}", c);
    }

    // client 还可以将 Rust 中的数据上传到 server 并生成一个变量
    let mut variables = HashMap::new();
    // 此处 HashMap 的 key 是变量名,value 是封装成 ConstantImpl 的变量
    variables.insert("a".to_string(), res.unwrap().clone());
    // 通过 upload 接口进行上传
    client.upload(&variables).await.unwrap();
}

运行 cargo run,结果如下:

如果您的执行结果与此相同,说明 Rust API 在您的环境运行正常。

在这个例子中,我们连接并登录 server 后得到了一个 client 对象。后续可通过该对象进行脚本执行与变量上传操作。