Skip to content

gpahal/hgraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hgraph

hgraph is an in-memory graph data store inspired by Neo4j and implemented in Haskell

Team members

Features

  • 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

Example

  • 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

Building and installing

$ git clone https://github.com/gpahal/hgraph.git
$ cd hgraph
$ cabal sandbox init
$ cabal install --only-dependencies
$ cabal build

Credits

This project was started as a part of the course CS653: Functional Programming at IIT Kanpur under the guidance of Prof. Piyush Kurur.

License

The content of this project itself is licensed under the BSD3 license. The license file is located here.