YAZ is a C/C++ library for information retrieval applications using the Z39.50/SRU/Solr protocols for information retrieval.
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, 1.2 and 2.0 (over HTTP and HTTPS).
Includes BER encoders/decoders for the ISO ILL protocol.
Supports Apache Solr Web Service version 1.4.x (client side only)
Secure Socket Layer support using GnuTLS. If enabled, YAZ uses HTTPS transport (for SOAP) or "Secure BER" (for Z39.50).
Offers ZOOM C API implementing Z39.50, SRU and Solr Web Service.
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.
Most implementors only need to read a fraction of the material in this manual, so a quick walkthrough of the chapters is in order.
Chapter 2, Compilation and Installation contains installation instructions for YAZ. You don't need to read this if you expect to download YAZ binaries. However, the chapter contains information about how to make your application link with YAZ.
Chapter 3, ZOOM describes the ZOOM API of YAZ. This is definitely worth reading if you wish to develop a Z39.50/SRU client.
Chapter 4, Generic server describes the generic frontend server and explains how to develop server Z39.50/SRU applications for YAZ. Obviously worth reading if you're to develop a server.
yaz-client(1) describes how to use the YAZ Z39.50 client. If you're a developer and wish to test your server or a server from another party, you might find this chapter useful.
Chapter 5, The Z39.50 ASN.1 Module documents the most commonly used Z39.50 C data structures offered by the YAZ API. Client developers using ZOOM and non-Z39.50 implementors may skip this.
Chapter 6, SOAP and SRU describes how SRU and SOAP is used in YAZ. Only if you're developing SRU applications this section is a must.
Chapter 7, Supporting Tools contains sections for the various tools offered by YAZ. Scan through the material quickly and see what's relevant to you! SRU implementors might find the CQL section particularly useful.
Chapter 8, The ODR Module goes through the details of the ODR module which is the work horse that encodes and decodes BER packages. Implementors using ZOOM only, do not need to read this. Most other Z39.50 implementors only need to read the first two sections (Section 1, “Introduction” and Section 2, “Using ODR”).
Chapter 9, The COMSTACK Module describes the network layer module COMSTACK. Implementors using ZOOM or the generic frontend server may skip this. Others, presumably, handling client/server communication on their own should read this.