All Projects → florinpatrascu → Neo4j_sips

florinpatrascu / Neo4j_sips

Licence: mit
Elixir driver for the Neo4j graph database server

Programming Languages

elixir
2628 projects

Projects that are alternatives of or similar to Neo4j sips

Bolt sips
Neo4j driver for Elixir
Stars: ✭ 204 (+161.54%)
Mutual labels:  neo4j, graph-database, graphdb, driver
Neo4j
Graphs for Everyone
Stars: ✭ 9,582 (+12184.62%)
Mutual labels:  neo4j, graph-database, graphdb
Neo4j Python Driver
Neo4j Bolt driver for Python
Stars: ✭ 607 (+678.21%)
Mutual labels:  neo4j, graph-database, driver
Libneo4j Client
neo4j-client -- Neo4j Command Line Interface (CLI)
Stars: ✭ 121 (+55.13%)
Mutual labels:  neo4j, graph-database, driver
Neo4j Core
A simple unified API that can access both the server and embedded Neo4j database. Used by the neo4j gem
Stars: ✭ 99 (+26.92%)
Mutual labels:  neo4j, graph-database, driver
NeoClient
🦉 Lightweight OGM for Neo4j which support transactions and BOLT protocol.
Stars: ✭ 21 (-73.08%)
Mutual labels:  neo4j, graph-database, graphdb
Neo4j Nlp
NLP Capabilities in Neo4j
Stars: ✭ 299 (+283.33%)
Mutual labels:  neo4j, graph-database
Janusgraph
JanusGraph: an open-source, distributed graph database
Stars: ✭ 4,277 (+5383.33%)
Mutual labels:  graph-database, graphdb
Gremlin Scala
Scala wrapper for Apache TinkerPop 3 Graph DSL
Stars: ✭ 462 (+492.31%)
Mutual labels:  graph-database, graphdb
Neo4j Javascript Driver
Neo4j Bolt driver for JavaScript
Stars: ✭ 674 (+764.1%)
Mutual labels:  neo4j, driver
trillion-graph
A scale demo of Neo4j Fabric spanning up to 1129 machines/shards running a 100TB (LDBC) dataset with 1.2tn nodes and relationships.
Stars: ✭ 73 (-6.41%)
Mutual labels:  neo4j, graph-database
Neography
A thin Ruby wrapper to the Neo4j Rest API
Stars: ✭ 606 (+676.92%)
Mutual labels:  neo4j, graph-database
Neo4j Graph Algorithms
Efficient Graph Algorithms for Neo4j
Stars: ✭ 713 (+814.1%)
Mutual labels:  neo4j, graph-database
Dgraph
Native GraphQL Database with graph backend
Stars: ✭ 17,127 (+21857.69%)
Mutual labels:  graph-database, graphdb
Incubator Age
Graph database optimized for fast analysis and real-time data processing. It is provided as an extension to PostgreSQL.
Stars: ✭ 244 (+212.82%)
Mutual labels:  graph-database, graphdb
Neo4j Graphql
GraphQL bindings for Neo4j, generates and runs Cypher
Stars: ✭ 429 (+450%)
Mutual labels:  neo4j, graph-database
Neo4j Go Driver
Neo4j Bolt Driver for Go
Stars: ✭ 258 (+230.77%)
Mutual labels:  neo4j, driver
Clj Odbp
A Clojure driver for OrientDB binary protocol
Stars: ✭ 31 (-60.26%)
Mutual labels:  graphdb, driver
R2d2 Cypher
Cypher support for the r2d2 connection pool
Stars: ✭ 8 (-89.74%)
Mutual labels:  neo4j, graph-database
Neo4j Symfony
Symfony Bundle for the Neo4j Graph Database
Stars: ✭ 69 (-11.54%)
Mutual labels:  neo4j, graph-database

Neo4j.Sips

A simple Elixir driver using the Neo4j graph database REST API. Compatible with the following Neo4j servers: 2.x/3.0.x/3.1.x

Build Status Deps Status Hex.pm Hexdocs.pm

Documentation: hexdocs.pm/neo4j_sips/

You can also look at: Bolt.Sips - Elixir driver using the Bolt protocol; Neo4j's newest network protocol, designed for high-performance.

Install

Available in Hex. Edit the mix.ex file and add the neo4j_sips dependency to the deps/1function:

def deps do
  [{:neo4j_sips, "~> 0.2"}]
end

or from Github:

def deps do
  [{:neo4j_sips, github: "florinpatrascu/neo4j_sips"}]
end

If you're using a local development copy:

def deps do
  [{:neo4j_sips, path: "../neo4j_sips"}]
end

Then add the neo4j_sips dependency the applications list:

def application do
  [applications: [:logger, :neo4j_sips],
   mod: {Neo4j.Sips.Application, []}]
end

Edit the config/config.exs and describe a Neo4j server endpoint, example:

config :neo4j_sips, Neo4j,
  url: "http://localhost:7474",
  pool_size: 5,
  max_overflow: 2,
  timeout: 15_000  # milliseconds!

Run mix do deps.get, deps.compile

If your server requires basic authentication, add this to your config file:

  basic_auth: [username: "foo", password: "bar"]

Or:

  token_auth: "bmVvNGo6dGVzdA==" # if using an authentication token?!

You can also specify the authentication in the url config:

  url: "http://neo4j:[email protected]:7474"

Example

With a minimalist setup configured as above, and a Neo4j server running, we can connect to the server and run some queries using Elixir’s interactive shell (IEx):

$ cd <my_mix_project>
$ iex -S mix
Erlang/OTP 19 [erts-8.0.2] [source] [64-bit] ...

Interactive Elixir (1.3.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> alias Neo4j.Sips, as: Neo4j

iex(2)> Neo4j.start_link(url: "http://localhost:7474")
{:ok, #PID<0.204.0>}

iex(3)> cypher = """
  CREATE (n:Neo4jSips {title:'Elixir sipping from Neo4j', released:2015, 
    license:'MIT', neo4j_sips_test: true})
"""

iex(4)> Neo4j.query(Neo4j.conn, cypher)
{:ok, []}

iex(5)> n = Neo4j.query!(Neo4j.conn, "match (n:Neo4jSips {title:'Elixir sipping from Neo4j'}) where n.neo4j_sips_test return n")
[%{"n" => %{"license" => "MIT", "neo4j_sips_test" => true, "released" => 2015,
     "title" => "Elixir sipping from Neo4j"}}]

For more examples, see the test suites.

Contributing

  • Fork it
  • Create your feature branch (git checkout -b my-new-feature)
  • Test (mix test)
  • Commit your changes (git commit -am 'Add some feature')
  • Push to the branch (git push origin my-new-feature)
  • Create new Pull Request

Contributors

As reported by Github: contributions to master, excluding merge commits

Author

Florin T.PATRASCU (@florinpatrascu, @florin on Twitter)

License

  • Neo4j.Sips - MIT, check LICENSE file for more information.
  • Neo4j - Dual free software/commercial license, see http://neo4j.org/
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].