Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mneudert/caylir

Cayley driver for Elixir
https://github.com/mneudert/caylir

Last synced: 26 days ago
JSON representation

Cayley driver for Elixir

Awesome Lists containing this project

README

        

# Caylir

Cayley driver for Elixir

## Cayley Support

Tested Cayley versions:

- `0.7.3`
- `0.7.4`
- `0.7.5`
- `0.7.6`

## Package Setup

To use Caylir with your projects, edit your `mix.exs` file and add the required dependencies:

```elixir
defp deps do
[
# ...
{:caylir, "~> 1.0"},
# ...
]
end
```

## Application Setup

### Graph Definition

Defining a graph connection requires defining a module:

```elixir
defmodule MyGraph do
use Caylir.Graph, otp_app: :my_app
end
```

This defined graph module needs to be hooked up into your supervision tree:

```elixir
children = [
# ...
MyGraph,
# ...
]
```

For a more detailed explanation of how to get started with a graph please consult the inline documentation of the `Caylir.Graph` module.

To configure your connection you can use the application environment:

```elixir
config :my_app, MyGraph,
host: "cayley.host",
port: 42160,
scheme: "https"
```

The entry should match the chosen `:otp_app` and module name defined earlier.

For more information on how (and what) to configure please refer to the inline documentation of the `Caylir.Graph.Config` module.

## Usage

Querying data:

```elixir
MyGraph.query("graph.Vertex('graph').Out('connection').All()")
```

Writing Data:

```elixir
MyGraph.write(%{
subject: "graph",
predicate: "connection",
object: "target"
})
```

Deleting Data:

```elixir
MyGraph.delete(%{
subject: "graph",
predicate: "connection",
object: "target"
})
```

A more detailed usage documentation can be found inline at the `Caylir.Graph` module.

## License

[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)