TL;DR

Titanium is a powerful Clojure graph library that is built on top of Aurelius Titan. It combines a Clojure-friendly API and graph processing DSL with the power of Titan.

beta1 is a major development milestone that has major public API changes, upgrades Titanium to Titan 0.3, provides a separate Clojure library for working with any Blueprints-compatible graph database and introduces a new powerful way of querying graphs: Ogre, a dialect of Gremlin.

Towards Making Clojure A Great Ecosystem For Graph Analysis

When we first introduced Titanium a few months ago, the response was very positive. People liked Titan features, swappable storage and straightforward transaction support.

Back then, Titanium wasn’t the only Titan-related Clojure project on the block. Zack Maril has been working on another project called Hermes for a while. Then Zack released Ogre, a Clojure library for querying Blueprints graphs.

Titanium and Hermes were largely solving the same problem and after discussing it for some time, we decided to join forces with Zack and continue working together on Titanium. Ogre and Archimedes are now ClojureWerkz projects and Titanium 1.0.0-beta1 is based on them.

We would like to thank Zack for considering joining the team and all the work he has been doing on Titanium and related Clojure graph libraries.

You should follow him on Twitter and GitHub.

Moving to Titan 0.3

Titan is still a young project and is actively being worked on. In version 0.3, Titan introduces several breaking API changes and new features such as

  • Full text search (indexing)
  • Better caching layer
  • Lots of optimizations
  • Properties on vertices can have properties on them which is very useful for version, timestamping, etc

Titanium closely follows these developments and 1.0.0-beta1 is based on Titan 0.3. Not all new Titan features are available in Titanium 1.0.0-beta1 but it won’t take long.

Improved Documentation

Titanium 1.0.0-beta1 includes a major documentation overhaul to adapt to the Titan 0.3 changes and separation into multiple libraries. In addition, Ogre documentation site is now also live and uses our standard documentation toolchain.

It’s not a ClojureWerkz project if it is not documented well!

Changes between Titanium 1.0.0-alpha2 and 1.0.0-beta1

Archimedes For Working With Blueprints Graphs

Titanium now relies a separate library called Archimedes for graph operations on any Blueprints-compatible graph database.

Ogre For Graph Querying

Titanium depends on Ogre, a powerful Clojure library for querying Blueprints-compatible graphs (a dialect of the Gremlin query language).

Ogre supercedes clojurewerkz.titanium.gpipe query DSL.

Titan Types Support

In Titan, edge and vertex properties can have custom types. Titanium now supports said custom types.

The documentation guide above provides more information.

Change Log

Titanium change log is available on GitHub.

News and Updates

New releases and updates are announced on Twitter. Titanium also has a mailing list, feel free to ask questions and report issues there.

How To Follow The Development

Titanium, Ogre and Archimedes are all available on GitHub.

If you have questions about these libraries, feel free to ask on the Titan mailing list or Titanium’s own mailing list.

Titanium is a ClojureWerkz Project

Titanium is part of the group of libraries known as ClojureWerkz, together with

  • Welle, a Riak client with batteries included
  • Monger, a Clojure MongoDB client for a more civilized age
  • Elastisch, a minimalistic Clojure client for ElasticSearch
  • Neocons, a Clojure client for the Neo4J REST API
  • Langohr, a Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model
  • Quartzite, a powerful scheduling library

and several others. If you like Titanium, you may also like our other projects.

Let us know what you think on Twitter or on the Clojure mailing list.

Michael on behalf of the ClojureWerkz Team.