Caylir

Cayley driver for Elixir

Warning

This module is highly experimental at the moment and may behave or change unexpectedly.

Setup

Add Caylir as a dependency to your mix.exs file:

defp deps do
  [ { :caylir, "~> 0.1" } ]
end

You should also update your applications to include all necessary projects:

def application do
  [ applications: [ :caylir ] ]
end

Usage

Graph Connections

Defining a graph connection requires defining a module:

defmodule MyApp.MyGraph do
  use Caylir.Graph

  def conf(), do: [ host: "localhost", port: 64210 ]
end

You now have a graph definition you can hook into your supervision tree:

Supervisor.start_link(
  [ MyApp.MyGraph.child_spec ],
  strategy: :one_for_one
)

Queries

Writing Data:

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

Querying data:

# Gremlin Syntax!
MyApp.MyGraph.query("graph.Vertex('graph').Out('connection').All()")

Deleting Data:

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

License

Apache License, Version 2.0