« KNOW YOURSELF - PERL - Practical Extraction and Report Language » EMail This Post

Yaz Toolkit

8 August 2008

YAZ is a C/C++ library for information retrieval applications using the Z39.50/SRU protocols for information retrieval.

The YAZ toolkit offers several different levels of access to the ISO23950/Z39.50, ILL and SRU protocols. The level that you need to use depends on your requirements, and the role (server or client) that you want to implement. If you’re developing a client application you should consider the ZOOM API. It is, by far, the easiest way to develop clients in C. Server implementers should consider the generic frontend server. None of those high-level APIs support the whole protocol, but they do include most facilities used in existing Z39.50 applications.
If you’re using ‘exotic’ functionality (meaning anything not included in the high-level APIs), developing non-standard extensions to Z39.50 or you’re going to develop an ILL application you’ll have to learn the lower level APIs of YAZ.
The YAZ toolkit modules are called, “YAZ layers”.

There are four layers.
• A client or server application (or both). This layer includes ZOOM and the generic frontend server.
• The second layer provides a C represenation of the protocol units (packages) for Z39.50 ASN.1, ILL ASN.1, SRU.
• The third layer encodes and decodes protocol data units to simple packages (buffer with certain length). The ODR module encodes and decodes BER whereas the HTTP modules encodes and decodes HTTP requests/responses.
• The lowest layer is COMSTACK which exchanges the encoded packages with a peer process over a network

Properties of YAZ:

Complete Z39.50 version 3 support. Amendments and Z39.50-2002 revision is supported.

Supports SRU GET/POST/SOAP version 1.1 (over HTTP and HTTPS).

Includes BER encoders/decoders for the ISO ILL protocol.

Supports the following transports: BER over TCP/IP (RFC1729), BER over unix local socket, and HTTP 1.1.

Secure Socket Layer support using GNU TLS or OpenSSL. If enabled, YAZ uses HTTPS transport (for SOAP) or “Secure BER” (for Z39.50).

Offers ZOOM C API implementing both Z39.50 and SRU.

The YAZ library offers a set of useful utilities related to the protocols, such as MARC (ISO2709) parser, CCL (ISO8777) parser, CQL parser, memory management routines, character set conversion.

Portable code. YAZ compiles out-of-the box on most Unixes and on Windows using Microsoft Visual C++.

Fast operation. The C based BER encoders/decoders as well as the server component of YAZ is very fast.

Liberal license that allows for commercial use of YAZ.


Leave a reply

You must be logged in to post a comment.