1个不稳定版本

0.1.0 2024年1月18日

#2076数据库接口

BSD-2-Clause

21KB
302

Picoslon

Picodata应用的后端postgresql驱动程序。非阻塞,支持纤维,由CBUS驱动。基于rust-postgres驱动程序构建。

此客户端具有与postgres crate类似的API(更多信息请参阅文档)。

使用示例

使用客户端构建器创建客户端

    use radegast::ClientBuilder;
    use tarantool::cbus;
    use tarantool::fiber::Fiber;

    pub const CBUS_ENDPOINT: &str = "tests_endpoint";

    // initialize cbus first
    pub fn init_cbus() {
        let mut fiber = Fiber::new("cbus_endpoint_f", &mut |_: Box<()>| {
            let cbus_endpoint = cbus::Endpoint::new(CBUS_ENDPOINT).unwrap();
            cbus_endpoint.cbus_loop();
            0
        });
        fiber.start(());
    }

    fn main() {
        init_cbus();
        let client = picoslon::ClientBuilder::new()
            .build("host=localhost user=user password=password dbname=db", picoslon::postegress::NoTls, CBUS_ENDPOINT)
            .unwrap();
    }

如果您愿意,可以手动定义一个tokio运行时(而不是默认),以与底层的tokio-postgres库交互。现在您有机会查询一些数据

    let count = client.query_one("SELECT count(*) FROM some_table", &[]).unwrap();
    println!("count is {}", count.get::<_, i64>(0));

要熟悉请求API,请参阅postgres文档。

测试

我们使用tarantool-test。运行测试

    docker-compose up -d
    cargo build
    tarantool-test -p ./target/debug/libtests.so

依赖关系

~12–22MB
~334K SLoC