apache_age 0.6.2

Rust driver for the Apache AGE. Based on postgres package
Documentation
# Apache AGE (Rust Driver)

![Crates.io Version](https://img.shields.io/crates/v/apache_age)
![GitHub Tag](https://img.shields.io/github/v/tag/Dzordzu/rust-apache-age)

## What is Apache AGE

AGE is opensource backend for postgres, that allows user to perform graph related operations on postgres. You can read about it on the [official website](https://age.apache.org/)

This repository will be eventually merged into the [age repository](https://github.com/apache/age). The status of the work needed for PR can be found in [the special issue](https://github.com/apache/age/issues/262) within AGE issue tracker

## Important note

This library is just a wrapper around existing postgres libraries. Connection parameters, methods etc. are indentical (unless noted) as in the [postgres](https://crates.io/crates/postgres) and [tokio-postgres](https://crates.io/crates/tokio-postgres) crates.

## Driver usage


More examples can be find in documentation (link below)

```rust
use apache_age::{NoTls, AgType};
use apache_age::sync::{AgeClient, Client}; 
use serde::{Deserialize, Serialize};

let mut client = Client::connect_age(
  "host=localhost user=postgres password=passwd port=8081",
  NoTls
).unwrap();

client.create_graph("my_apache_graph");

#[derive(Debug, Serialize, Deserialize, Clone)]
struct Person {
    pub name: String,
    pub surname: String,
}

match client.query_cypher::<()>(
    "my_apache_graph",
    "MATCH (n: Person) WHERE n.name = 'Alfred' RETURN {name: n.name, surname: n.surname}",
    None,
) {
    Ok(rows) => {
        let x: AgType<Person> = rows[0].get(0);
        // do whatever you need
    }
    Err(e) => {
        // handle error
    }
}

client.drop_graph("my_apache_graph");
```

## Links

- [Documentation]https://docs.rs/apache_age/latest/apache_age/
- [Source code]https://github.com/Dzordzu/rust-apache-age

## Testing

There is a simple docker-compose file within tests directory. Run it to set up an AGE db.

```bash
pushd tests
docker-compose up -d
popd
cargo t
```