Note: See https://irods.org/2015/12/update-irods-client-interfaces/ for the December 2015 update to this post.
There's a lot to iRODS, and we will admit that the documentation is a work in progress (but it is in progress. I'll post some details soon.). Consequently, I get a lot of questions about iRODS capabilities. Today I'm going to talk about one in particular: "How will my users access iRODS?" In other words, what client will they use?
The answer is, "It depends." The core iRODS package that we installed last week includes iCommands, which comprise the most basic iRODS client. These are command line executables, and many of them are based on POSIX-style command line utilities. There are iput and iget for adding and retrieving data to and from a collection. There are imeta and iquest for adding and querying metadata. And there are about 50 additional iCommands that cover capabilities from administering resources and users to executing rules on the fly. At the moment, the best reference for iCommands is the wiki.
Several additional client options exist:
Finally, many advanced sites choose to implement their own clients. The iRODS core code provides a C++ API; DICE maintains a Java API called Jargon. There are additional APIs built on top of these, which will be covered in a future post.