Reputation: 4201
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
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
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
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