Caylir

Cayley driver for Elixir

Warning

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

Tested cayley version: 0.6.0 (see .travis.yml to be sure)

Setup

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

defp deps do
  [ { :caylir, "~> 0.3" } ]
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, otp_app: :my_app
end

The :otp_app name and the name of the module can be freely chosen. They only need to be linked to an entry in your config.exs:

config :my_app, MyApp.MyGraph,
  host: "localhost",
  pool: [ max_overflow: 0, size: 1 ],
  port: 64210

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