AnC
AnC

Reputation: 4201

lightweight graph databases for prototyping

For prototyping purposes, I'm looking for a lightweight graph database - essentially a graph equivalent for Memcached, Redis or SQLite; something that is trivial to use and deploy (in a JavaScript/Ruby/Python/Go/... environment).

While Neo4j provides everything I want, it's a bit heavyweight for my purposes.

The closest I've found is HeliosJS, though that uses Gremlin whereas I'd prefer Cypher.

Any recommendations would be appreciated.

Upvotes: 12

Views: 7473

Answers (3)

user20032504
user20032504

Reputation: 1

This is a fairly old question, but the additional answer is may help someone. I've been looking for a lightweight Graph NoSQL, and I found RedisGraph. It is a Graph DB based on Redis and GraphBLAS, which uses Cypher as a query language. I haven't used it, so I can not comment on how useful it is for fast prototyping, but Redis is relatively lightweight NoSQL DB, so you should be able to run it anywhere and once you install RedisGraph extension, you can interact with it using redis-cli.

Upvotes: -1

Kevin-Prichard
Kevin-Prichard

Reputation: 163

Here in 2022, we have a few more options. Memgraph is an in-memory graph database which provides a Cypher implementation. I found this SO question and the following roundup of five Python in-memory databases at the top of a search for "lightweight in-memory graph database"-

https://memgraph.com/blog/in-memory-database-python

I haven't tried any of them yet, but will be trying Memgraph for an intense in-memory graph problem in Python.

Another option I'll be reviewing is Apache TinkerPop, which offers Gremlin for queries (a GQL which, among other things, employs method chaining) and has Python interfaces, such as gremlinpython which appears to maintain the method chaining invocation style.

Upvotes: 1

stephen mallette
stephen mallette

Reputation: 46206

Cypher only works with Neo4j, so if you are tied to using it then you are also tied to Neo4j. I'm not aware of any other implementations of that language for any other graph.

For prototyping, I always recommend TinkerGraph with a Gremlin REPL. TinkerGraph is very lightweight and operates as an in-memory graph database. It is the fastest of all Blueprints implementations. I almost always first turn to Gremlin/TinkerGraph when "prototyping", trying a traversal, testing a graphs schema, loading a sample of a dataset, etc., as it provides instant feedback, lots of integration options, and all the power of Groovy for manipulating data. You can read more about the Gremlin REPL as a "workbench for graphs" here.

Update: Note that the above links point to TinkerPop 2.x. TinkerPop 3.x also offers TinkerGraph and the Gremlin Console.

Upvotes: 8

Related Questions