Skip to content
iRODS client programs and API
Branch: devel
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


baton |bəˈtän|

  noun, A short stick or staff or something resembling one.

Client programs and API for use with iRODS (Integrated Rule-Oriented
Data System).

baton is intended as a supplement to the command line client programs
(ils, imeta etc.) provided with a standard iRODS installation. Its
focus is metadata operations for iRODS collections and data objects.
baton is spelled with a lower case letter 'b'.

The features it provides are:

- A single JSON format for listing results, composing queries and
  performing updates.

- Listing of data objects and collections as JSON, including their
  metadata (AVUs), file size, access control lists (ACLs) and creation
  and modification timestamps.

- Queries on metadata, on access control lists (ACLs), creation and
  modification timestamps and timestamp ranges. The full range of
  iRODS query operators is supported.

- Optional unbuffered IO for IPC via pipes, with fine-grained error
  reporting for batch operations.

- Simplified API over the iRODS general query API to ease construction
  of new custom queries.

- Downloading data objects as files or embedded in JSON (if data
  object content is UTF-8).

For further details see the man pages or manual, which is available
online at

iRODS compatibility:

- Compatible with iRODS 3.2, 3.3, 3.3.1 and 4.1.x

- Not compatible with iRODS 4.0.1 and 4.0.2 (which lack required API
  functions with C linkage).


1. Install iRODS 3.3.x or 4.x and the baton dependencies (Jansson) as
   described in their documentation.

2. If you have cloned the baton git repository, run autoconf to
   generate the configure script:

   autoreconf -i

   If you have downloaded a release tarball, the configure script is
   included, so proceed to step 3.

3. For a run-in-place installation of iRODS 3.3.x or iRODS 4.x, run the
   configure script using a --with-irods argument to indicate the root
   directory of the iRODS source tree.

   ./configure --with-irods=/path/to/irods

   You may set the location of your preferred Boost installation by
   using a --with-boost argument.

   For a packaged (.deb) installation of iRODS 4.x, run the configure
   script with a bare --with-irods argument.

   ./configure --with-irods

   (The iRODS configuration options are implemented by a
   macro 'ax_with_irods' which is included in the m4 subdirectory).

4. Compile


5. Optionally, run the test suite

   make check

6. If you have run configure with the optional --enable-coverage flag
   you can generate test coverage statistics with lcov.

   make check-coverage

7. Install, including HTML manual and manpage.

   make clean install


For full details of the JSON accepted and returned by the programs in
baton, see the manual in the doc directory.



        Versions 3.2, 3.3, 3.3.1

        Versions 4.1.x


        Versions >= 2.6

Optional dependencies:

Sphinx               (for the manual and manpages).
check        (for unit tests).

       Versions >= 0.9.10

lcov (for test coverage analysis)

jq        (for processing input and output)

You can’t perform that action at this time.