SRU (Search/Retrieval Using URL)


SRU Products


CQL Parsers      SRU Software      Server Software    SRU Client    Proxies    Client/Server      Product lines

CQL Parsers

CQL-Java version 1.7

CQL parser for Java.

July 27, 2010
version 1.7 of CQL-Java.

Download link

Contact: Mike Taylor, Index Data, [email protected]


CQL parser for Java.

Free/proprietary/other: Free
Licence: GNU LGPL
Download link:
Support: informal support available; commercial arrangements possible with Index Data.
System requirements: Java. I've used version 1.4.1 of IBM's JRE, but it doesn't use any sophisticated runtime facilities, so it should be fine on any runtime environment.
Language: Java
Known servers that run this software:
Usage: The front end reads a stream containing a CQL query and produces a parse-tree represented by simple, well-documented node objects. This can either be walked by hand, or fed to one of the provided back ends, which produce XCQL (an XML representation of the query), re-rendered canonicalised CQL, PQF (Prefix Query Format representing an equivalent Z39.50 Type-1 Query) or a raw BER-encoded Type-1 Query.

Contact: Mike Taylor, Index Data, [email protected]


A CQL parser.

Version(s) of the product. Current version is 0.7.1.
Version(s) of SRU, CQL, supported.
Free/proprietary/other. Free.
License. Code is free to use under the terms of the LGPL license.
Download link.
Support. via google groups
System requirements. and should run in any ruby 1.8 installation.
Language. ruby 1.8
Known servers that run this software.
require 'cql_ruby'
parser =
puts parser.parse( 'dog and cat' ).to_solr

Contact. Chick Markley

CQL Parser (from CQ2)

This project provides a generic AST parser, written in Python. It is level 1 compliant and easily extensible with functionality for other grammar productions.

Version of the product described: version 1.1
Version(s) of SRU, CQL, supported. CQL 1.1 level 1+
Free or proprietary (or other): Free
Liscense: GPL  ( Other licenses are available on request.)
Download link:
System requirements: n/a
Language; Python

Known servers that run this software:,,,, ...
Usage -- It parses CQL and create an AST from wich other query languages are
easiliy created.  Includes Lucene printer.
ContactErik Groeneveld, Seek You Too, The Netherlands, [email protected]

Python CQL Parser

A Python Library for parsing CQL and XCQL. Includes CQL to RPN transformation for PyZ3950.

Version: Fully CQL 1.1 compliant
Free/proprietary/other: Free
Licence: GPL, Open Source
System Requirements: Python2.2+
Support: Free mailing list support, commercial arrangement possible.

Contact: Rob Sanderson [email protected]

CQL Parser for Perl

Essentially a port of Mike Taylor’s cql-java package listed above, and as such it currently conforms to the v1.0 proximity syntax.

Version: CQL-Parser-0.2
Free/proprietary/other: Free
System Requirements:
Contact: Ed Summers

CQL Parser Test

Click on a sample query to generate the XCQL equivalent. Provided by Tom Habing

SRU Software

Includes two plugins for the popular Perl web application frameworks Catalyst and CGI::Application.


Server Software

OCLC Research Open Source SRW/U Server

Implements both the SRW Web Service and the SRU REST model interface to databases. Included are interfaces that support DSpace's Lucene implementation and OCLC's Pears and Newton databases.

Version: 1.1 of SRU and CQL are supported.
Free/proprietary/other: Free
License: OCLC Research Public License
Download link:
Support: E-mail support. See contact information below.
System requirements: Java 1.3
Language: Java
Known servers that run this software:

: Ralph LeVan, OCLC Online Computer Library Center, Inc.


SRU Client

SRU Client

Description: Integration with Drupal to link SRU items with Drupal Nodes with preview.
Version of the product. 1.0
Version(s) of SRU supported. 1.1
Free/proprietary/other. Free.
Download link.
Support. [email protected]
System requirements. Drupal 6
Language. PHP
Known servers that run this software.
Usage. Runs inside drupal as a third party integrator.
Contact. Eduardo Garcia, Anexus IT, [email protected]


   Drupal SRU Client


YAZ Proxy

The YAZ proxy can run as a front-end to any Z39.50 server and provide SRU/SRW services (as well as Z39.50 services). The mapping between CQL and the Z39.50 type-1 query language is fully configurable. It can map MARC
records to MARCXML and other transformations can be performed using XSLT stylesheets (stylesheets for DC and MODS are included). The proxy can normalize different character sets to UTF-8 as required. In addition to its
SRU functionality it also includes a host of performance-optimization features such as caching and load management.

Version: 1.0
Free/proprietary/other: Free
License: GPL. Other licenses are available on request.
Download link:
Support: Available.
System requirements Most unixes; YAZ and YAZ++ required (available from same site)
Language: C++
Known servers that run this software: Library of Congress; others.
Usage: Like Viagra for your Z39.50 server

Sebastian Hammer


Simple SRU client/server
Search sets of harvested OAI data. Server, provided by Xiaorong Xiang (Notre Dame), supports spelling, synonym,and keyword suggestions. Client provide by Eric Morgan.

oss4lib open source SRU for libraries

Product lines


Archimed products implementing SRW/U are:

  • QuASAR. Windows client (.Net). used for quick testing and analyzing of the SRW/U services: version of the protocol, index, format of answers, etc. Available free of charge on (French)
  • SARA. A universal SRW/U server. Can run on Windows (.Net) or Linux (Mono::). It aims at quickly developing plugs-in to interface in SRW/U databases or application not natively searchable with this protocol. Several plugs-in have already been developed, to search with SARA, the following databases or systems: DMOZ, XML files, Index Server, Copernic, WebDav (WebFolder and Exchange), Wiley InterScience, IOP, PubMed, Nature, ScienceDirect, etc. The diversity of sources that can be linked by SARA through the SRW/U protocol makes SARA the adequate tool to normalise access to heterogeneous proprietary systems.
  • BOOK-LINE. A multibase meta search engine interrogating the databases equipped with a Z39.50 and SRW/U footbridge. Combined with SARA, BOOK-LINE can query in one search all native Z39.50 or SRW/U databases and all heterogeneous sources queried in SRW/U.

QuASAR is now available only in French.

Contact: Guillaume Liékens

Cheshire3 Digital Library System

A full digital library application including both Z39.50 and SRW/U support. Ingests anything from PDF, Word or XML. Supports Unicode and XML namespaces, as well as a distributable architecture and extensive XML configuration.

Version: SRU/CQL 1.1, Z39.50-2003, OAI2. Currently Beta.
Free/proprietary/other: Free
Licence: GPL, Open Source
System Requirements: Apache, Python, Mod Python, BerkeleyDB
Support: Free mailing list support, commercial arrangement possible.

: Rob Sanderson [email protected]


RefDB is a reference database and bibliography tool for SGML, XML, and LaTeX documents. Command-line tools allow interactive or scriptable access to the data which are stored in a SQL database. RefDB can also be accessed through  a Web interface, a SRU interface, or via editor extensions (Emacs/vim). Libraries for Perl and PHP are available for programmers. RefDB provides sophisticated character encoding handling, using Unicode by default. The SRU server is a CGI application which supports both MODS and risx (a RIS variant encoded as XML) as output formats. Appropriate default stylesheets are provided to make the results human-readable in a web browser.

Version(s) of the product. The current version 0.9.9 is the first one that supports SRU.
Version(s) of SRU, CQL, supported. SRU version 1.2 (explain, searchRetrieve, and scan are implemented) CQL
level 2.
Free/proprietary/other. Free.
License. GNU General Public License.
Download link.
Support. via mailing list:
System requirements. As far as the SRU server is concerned, a web server like Apache and a Perl interpreter with a couple of Perl modules suffice. The RefDB application server runs on most Unix variants (Linux, FreeBSD, NetBSD,
OSX, Solaris) and on Windows/Cygwin. Data are stored in a SQL database (MySQL, PostgreSQL, and SQLite are supported).
Language. The SRU server part of RefDB is implemented as a Perl CGI application.
Known servers that run this software. No public servers to date.
Usage. The SRU server part acts as a proxy server for the RefDB application server. As a CGI application, it plugs right into your web server. You send your SRU queries by typing them into a web browser, via command line tools
like wget, via tools like yaz, or by running applications that send SRU request. Your web server then calls the CGI application which returns the query results.
Contact information. Markus Hoenicka [email protected].

Index Data Products

The following SRU-enabled products have been developed and are supported by Index Data. Configuration and installation assistance and ongoing support is available. Contact David Dorman in the US (mailto:[email protected], 860-346-1237 or toll free 866-489-1568) or Marc Cromme in Denmark (mailto:[email protected], or +45 3341 0100).  More information available at

  • Metaproxy

A proxy front end server that presents a single Z39.50/SRW/SRU front end to multiple back end Z39.50 database servers. It can also work in conjunction with Index Data's library of gateways to access non-Z39.50-compliant database servers. Metaproxy is server software and does not have a client interface but is designed to tie into any existing client search interface.
Combines caching; load balancing; filtering; and cross database merging of the result set; and other performance-enhancing mechanisms that speed up retrieval. It is designed for integrating multiple back end databases - within a single organization or across multiple organizations - into what appears from the user's point of view to be a single searchable resource.

Distributed under the General Public License.


An extension to PHP, the web server language that implements Z39.50 origin (client) functionality as well as the SRW/SRU protocols. 

Distributed under the PHP license.


A Perl module intended to make it as simple as possible to develop new Z39.50, SRU and SRW servers over any type of database.

Available under the BSD license.

  • YAZ ++

Toolkit for building Z39.50/SRU clients and servers.  An application programming interface  to YAZ which supports the development of Z39.50/SRW/SRU client and server applications using C++. Supports SRW/SRU version 1.1 in both the client and server roles. Includes an implementation of the ZOOM C++ binding and a generic client/server API based on the Observer/Observable design pattern.

Available under the BSD license and optional support is available from Index Data.

  • YAZ Proxy

Configurable Z39.50 proxy server and SRW/SRU--Z39.50 gateway and can be used in a number of different applications.

Available under the GPL license.  Other licensing terms are available to commercial vendors upon request.



Provided by CARE Affiliates in conjunction with Index Data and WebFeat.

Provides access through SRU to databases supported by WebFeat's  database translators. Access to  more than 9,000 databases, including commercial abstract/citation databases and reference services.  Offered as a
subscription-based, hosted service.

More information at .

For sales information, contact CARE Affiliates at 1-866-340-9580 or [email protected].