#graph-database #graph #wasmcloud #graphdb #api-bindings

wasmcloud-redisgraph

RedisGraph 实现的 wasmCloud 图数据库能力提供者合约

4 个版本

0.3.3 2021 年 5 月 18 日
0.3.2 2021 年 3 月 18 日
0.3.1 2021 年 2 月 11 日
0.3.0 2021 年 2 月 11 日

#2758 in 数据库接口

Apache-2.0

15KB
258

crates.io Rust license documentation

wasmCloud 图数据库提供者 (Redis Graph)

此存储库包含一个 示例actor,以及主能力提供者

虽然actor和通用库可以在不同类型的图数据库中使用,但此提供者是基于Redis Graph构建的。

以下示例显示了构建一个actor所需的代码行数非常少,该actor可以响应HTTP请求,读取和写入图数据,并将结果作为JSON通过HTTP公开

actor_handlers! { codec::http::OP_HANDLE_REQUEST => handle_http_request,
                  codec::core::OP_HEALTH_REQUEST => health }

fn handle_http_request(req: codec::http::Request) -> HandlerResult<codec::http::Response> {    
    if req.method.to_uppercase() == "POST" {
        create_data()
    } else {
        query_data()
    }
}

// Execute a Cypher query to return data values
fn query_data() -> HandlerResult<codec::http::Response> {
    let (name, birth_year): (String, u32) =
        graph::default().graph("MotoGP")
            .query("MATCH (r:Rider)-[:rides]->(t:Team) WHERE t.name = 'Yamaha' RETURN r.name, r.birth_year")?;

    let result = json!({
        "name": name,
        "birth_year": birth_year
    });
    Ok(codec::http::Response::json(result, 200, "OK"))
}

fn health(_req: codec::core::HealthRequest) -> HandlerResult<()> {
    Ok(())
}

依赖项

~7–17MB
~240K SLoC