Clojure Graph Resources

A curated list of Clojure resources for dealing with graph-like data.
Alternatives To Clojure Graph Resources
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Neo4j11,4249661794 days ago374August 11, 2022355otherJava
Graphs for Everyone
9 days ago106July 05, 202299apache-2.0Python
Cartography is a Python tool that consolidates infrastructure assets and the relationships between them in an intuitive graph view powered by a Neo4j database.
425 days ago148July 02, 2022139bsd-3-clausePython
PyGraphistry is a Python library to quickly load, shape, embed, and explore big graphs with the GPU-accelerated Graphistry visual graph analyzer
Activegraph1,3753142824 days ago299April 09, 2020239mitRuby
An active model wrapper for the Neo4j Graph Database for Ruby.
Neovis.js1,3343210 days ago20June 26, 202241apache-2.0TypeScript
Neo4j + vis.js = neovis.js. Graph visualizations in the browser with data from Neo4j.
6 years agoMay 22, 202143apache-2.0Go
Simulate Protocol Interactions in Go
Node Neo4j934459515 years ago34June 11, 201546apache-2.0CoffeeScript
[RETIRED] Neo4j graph database driver (REST API client) for Node.js
6 months ago26bsd-2-clauseJavaScript
InteractiveGraph provides a web-based interactive visualization and analysis framework for large graph data, which may come from a GSON file, or an online Neo4j graph database. InteractiveGraph also provides applications built on the framework: GraphNavigator, GraphExplorer and RelFinder.
Stock Knowledge Graph896
3 years ago15mitPython
Neomodel801624a month ago43December 14, 2021100mitPython
An Object Graph Mapper (OGM) for the Neo4j graph database.
Alternatives To Clojure Graph Resources
Select To Compare

Alternative Project Comparisons

Clojure graph resources

This is a curated list of mostly mature and/or actively developed Clojure resources relevant for dealing with graph-like data. It's currently being expanded as I explore this area more thoroughly. Suggestions are welcome in the form of pull requests or Github issues. I try to steer around abandonware, though.

If you're interested in DSLs and parsing, be sure to check out clojure-dsl-resources too.

Data structures / algorithms

  • aysylu/loom: Graph library for Clojure.
  • Engelberg/ubergraph: An all-purpose Clojure graph data structure that implements Loom protocols and more.
  • ont-app/igraph: IGraph defines a protocol which aims to provide a general interface to a variety of graph-based representations.
  • totakke/jungerer: Clojure network/graph library wrapping JUNG.
  • pangloss/fermor: Fast, powerful, general-purpose graph traversal and modelling tools plus a performant immutable in-memory graph database.
  • ekoontz/dag-unify: A Clojure library for combining directed acyclic graphs (DAGs) via unification.
  • aroemers/rmap: Clojure library for defining recursive maps; literally, programmatically and with pure data.
  • cjsauer/joinery: Enables traversal of in-memory graph-like data structures using Clojure(Script)'s map protocols.


  • chrismurrph/show-graph: Translates a particular directed graph data structure (graph with vertices and edges) into a JavaFX view that can be seen from Reveal.
  • jebberjeb/specviz: Generate Graphviz images from clojure.spec.
  • benedekfazekas/morpheus: Generate dependency graph(s) for variables in Clojure(Script) namespaces.
  • jpmonettas/clograms: Clojure[Script] source code diagrams.
  • jafingerhut/cljol: Visualise the memory usage of a Java object and all the objects that it references as a graph.


Labeled-property graph

Labeled-property graph databases use complex graph models where edges and vertices can have both labels and associated properties.


RDF triplestores are a specialised type of graph database for representing knowledge graphs; part of the W3C Semantic Web standards.


Clojure's Datomic-like databases also model data as triplets... or in some cases technically as quintuplets AKA datoms. See for a comparison of some of the Datalog database options listed below.

  • (PROPRIETARY) A transactional database with a flexible data model, elastic scaling, and rich queries.
  • tonsky/datascript: An immutable in-memory database and Datalog query engine in Clojure and ClojureScript.
    • mpdairy/posh: Posh is a ClojureScript / React library that lets you use a single DataScript database to store your app state.
    • denistakeda/re-posh: Re-posh allows Posh and re-frame to work together by adding support for re-frame specific subscriptions, events, effects, and co-effects to Posh.
    • metasoarous/datsync: This library offers tools for building DataScript databases as materialized views (very much in the re-frame/samsa sense) of some master/central Datomic database.
    • frankiesardo/minikusari: minikusari is a minimal rule engine built on top of Datascript (and can work with Datomic or Datahike).
    • ont-app/datascript-graph: An implementation of the IGraph protocol extended to datascript.
  • mhuebert/re-db: Attempts to be a fast, reactive, client-side triple-store for handling global state in ClojureScript apps, inspired by Datomic/DataScript, working in conjunction with Reagent.
  • replikativ/datahike: Datahike is a durable Datalog database powered by an efficient Datalog query engine.
  • juji-io/datalevin: Datalevin is a simple durable Datalog database.
  • quoll/asami: A graph database, for Clojure and ClojureScript.
  • xtdb/xtdb: XTDB is a general purpose database with graph-oriented bitemporal indexes.
  • Workiva/eva: Eva is a distributed database-system implementing an entity-attribute-value data-model that is time-aware, accumulative, and atomically consistent.
  • ribelo/doxa: An in-memory datalog database implemented with Meander.
  • threatgrid/naga: Datalog based rules engine.
  • den1k/nldl: Natural Language for Clojure's Datalog flavor as present in Datomic, Datascript, Datahike etc.


  • clojurewerkz/ogre: Ogre is a Clojure Gremlin Language Variant of the Gremlin graph traversal language from Apache Tinkerpop, which is an open source, vendor-agnostic, graph computing framework.
  • fern-flower-lab/sqlg-clj: Tinkerpop3 graphs in a relalional database (Sqlg wrapper).
  • stuartsierra/mapgraph: Basic in-memory graph database of maps with links.
  • den1k/subgraph: Reactive graph database for re-frame; a fork of stuartsierra/mapgraph.
  • keechma/keechma-entitydb: EntityDB is a client side database and normalization engine.



  • fulcrologic/fulcro: Fulcro is a full-stack web framework where a single underlying graph acts as the shared data model of both backend and frontend.
  • plumatic/plumbing: Plumbing and Graph: the Clojure utility belt. Graph is a simple and declarative way to specify a structured computation, which is easy to analyze, change, compose, and monitor.
  • simongray/datalinguist: Stanford CoreNLP in idiomatic Clojure. Support for dependency grammar graphs, pattern matching, and visualisation.
  • nwjsmith/generators.graph: test.check generators for graph data.
  • jackrusher/mundaneum: A clojure wrapper around WikiData.
  • Swirrl/cubiql: A proof of concept GraphQL service for querying Linked Data Cubes.
  • esuomi/muotti: A graph-based value transformer library.

Personal knowledge graphs

It is perhaps worth mentioning that several tools have been written in Clojure for making personal knowledge graphs through note-taking. The first one to appear was Roam Research (proprietary). It has since inspired Athens Research (open source, commercial) and Logseq (open source, community-driven). These tools are all based on libraries listed in the Datalog section.



RDF has a small, but steady Clojure following. People are using Neo4j with Clojure, but not talking much about it. Datomic-like Datalog databases have the most momentum.

Popular Graph Projects
Popular Neo4j Projects
Popular Computer Science Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Semantic Web
Graph Theory