hgraph is an in-memory graph data store inspired by Neo4j and implemented in Haskell
- Garvit Pahal (12264)
- Harshit Agrawal (12288)
- Siddhant Saurabh (12715)
- Haskell embedded in-memory graph data store
- Property graph model with labels for nodes and edges
- Supported values - Int64, Bool, Double, Text, [Int64], [Bool], [Double], [Text]
- Graph algorithms - Dijkstra, Breadth-first search - with support for specifying depth and number of results
- Graph algorithm results in the form of a list of paths or a path tree
- Save and load the data store to disk (for backup and recovery)
- Export to Neo4j database - visualization, REST API
- Indexing based on labels
- Simple interface - findNodes, findById, dijkstra, shortestPath etc.
- Type safety as the implementation is in Haskell
- A sample Facebook-like social networking service implemented in SocialNetwork.hs.
- Exporting to Neo4j requires the Neo4j server to be running. Parameters for url, port and authentication can be changed in Database.hs
$ git clone https://github.com/gpahal/hgraph.git
$ cd hgraph
$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal build
This project was started as a part of the course CS653: Functional Programming at IIT Kanpur under the guidance of Prof. Piyush Kurur.
The content of this project itself is licensed under the BSD3 license. The license file is located here.