Native GUI Access to iRODS on a Mac or Linux Desktop

Hello Everybody!

I’m writing this guest blog post on the kind request of Dan Bedard of the iRODS Consortium. Lately I’ve been working to build a research data store for a Finnish university and in the course of this work I developed something that we thought could be of more general use as well.

As the title of this post suggests, I’m talking about a graphical user interface for iRODS that runs natively on Mac OS X and Linux. The software is written in C++ on top of the Qt framework and the native iRODS Client API and thus runs with full native performance on the supported platforms while remaining portable. Also, because of the native iRODS interface, the application supports both SSL and TCP transport modes and all of the iRODS authentication plugins (e.g. Kerberos).

Just a while ago I was able to release my project – codenamed Kanki (a rod in Finnish) by one of my colleagues. The release was made in source form with the 3-Clause BSD license and the source repository can be found at Currently it builds against irods-4.1.x on Linux and Mac OS X.

There are precompiled RPM packages for CentOS/RHEL versions 6 and above – distributed alongside the source releases at GitHub. For these Linux distributions the installation is very straightforward, simply install the iRODS RPM packages and the client RPM. I am also planning to provide prebuilt Ubuntu packages later as well as Mac OS X packages, which I’m currently working on.

As of yet the client doesn’t have its own configuration and credentials management for iRODS connections and uses the same iRODS environment as the iRODS icommands. Thus to be able to log in using the client you should have your iRODS environment configured and credentials in place by running iinit . Later on there will be proper graphical configuration management of iRODS connections and credentials.

Currently the client has most of the basic iRODS functions implemented as well as a graphical metadata editor with configurable schema management, which will be developed further as well, to later on include features such as metadata templates, validators and different kinds of attribute editors.

Other features which will be implemented as soon possible, include drag&drop, a search UI with arbitrary criteria, an iRODS ACL editor, a rule exec interface for submitting user rules to iRODS for execution, (pre)viewers for data objects and perhaps even visualization tools for iRODS object relations etc.

Getting Started

If you happen to use Red Hat Linux or CentOS, the installation is very easy, as there are prebuilt RPM packages. For other Linux distributions, currently you may have to adjust the build configuration. I intend to configure and test the build for other distros as well, starting with Ubuntu since it’s already supported by RENCI prebuilt iRODS packages. For the Linux installation, see README at GitHub. An OS X build can at this moment only be done from the develop branch.

OS X Build Instructions

Now this is still bleeding edge since there are yet no release packages – those will become available with the next release 1.0.4 shortly. To build in an OS X environment you have to install some prerequisites first. Xcode and its command line tools package are assumed to be installed.

  • Install some packages from Homebrew.

  • Install Perl JSON module from CPAN (Comprehensive Perl Archive Network).

  • Clone my forked irods repo, with build patches to build against openssl-1.0 from Homebrew.

  • Build iRODS icommands.

  • After the build is complete, update PATH  to reflect the installation of iRODS icommands, run the following and/or add to your shell, while replacing $IRODS_HOME  with the absolute path of the irods directory in the previous step.

  • Clone the kanki-irodsclient repo from the develop branch.

  • Configure the OS X build with your irods build directory, edit file kanki-irodsclient/config/build.pri  to include the following, replacing IRODS_HOME  with the absolute path of your irods directory.

  • Install Qt 5.5 into a suitable location such as ~/Qt .
  • Build the client against the previously built irods distribution and Qt, providing the Qt root directory to the script via the -q command line argument. If you installed Qt to ~/Qt , your Qt root is ~/Qt/5.5/clang_64 .

  • After the build script has completed, you should have an package at your build directory. Opening the package in Finder installs into /Applications. Run iinit to setup an iRODS environment and then you may launch

Metadata Schema Configuration

The client has a configurable metadata schema which can be defined via a bundled XML file. The location of the metadata schema XML is


in the Linux version and


in Mac OS X. The format is pretty straightforward – you configure namespaces and attribute definitions in the namespaces. I will post instructions for this later on. An example attribute definition looks like

Any questions?

If you are interested in knowing more or ran into trouble while installing etc. you may contact me via email and I will try to help. Also if someone wishes to participate in the development of this application, please let me know!

  • Dean Snyder

    Ilari, this is great! I remember the excitement at the iRODS conference this summer when you demonstrated Kanki. I will be downloading and compiling it soon, and am looking forward to using it in my iRODS work at Johns Hopkins.

    • Ilari Korhonen

      I’m very glad to hear this Dean! I hope you find it useful!

  • Ilari Korhonen

    Update: You can now find OS X installer packages for the client at ! The package bundles iRODS icommands and plugins inside the application bundle at /Applications/, see installation instructions at .

  • Ilari Korhonen

    Update: released beta version 1.1.0b including iRODS data object search with arbitrary metadata criteria.

  • Ava Cueto3

    Fantastic post ! I am thankful for the analysis , Does anyone know if my company might get a sample a form document to work with ?

    • Hi Ava, my colleague filled out a sample a form document here

  • Hi Ilari, great work! I have a couple of questions. 1. Are there pre-built Kanki binaries for Ubuntu / Debian? 2. Any plans on porting Kanki to Windows? 3. What ports does Kanki uses to communicate with iRODS server by default (I assume it’s configurable within Kanki)? I look forward to hearing from you. Best regards, Alex.