X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=README;h=0a4d5d05144c3b3f55916b43e7afee09189dca21;hp=cfc76c5c63bc4f7b18521d55f0aa0cf4b40e186d;hb=HEAD;hpb=f8b84c5392b7cd02004f72ced65adbac2bdee1a6 diff --git a/README b/README index cfc76c5..0a4d5d0 100644 --- a/README +++ b/README @@ -1,6 +1,7 @@ -YAZ++ - A C++ library for YAZ and a ZOOM C++ API. +YAZ++ AKA yazpp - A C++ library for YAZ and a ZOOM C++ API. -$Id: README,v 1.4 2004-03-31 21:04:47 adam Exp $ +Copyright (C) 1998-2015, Index Data +See the file LICENSE for details. Introduction ------------ @@ -8,19 +9,16 @@ Introduction YAZ++ is a set of libraries and header files that make it easier to use the the YAZ toolkit from C++, together with some utilities written using these libraries. It includes an implementation of the C++ binding -for ZOOM and a powerful general-purposse Z39.50/SRW/SRU proxy. +for ZOOM. -YAZ++ and ZOOM C++ uses the same license as YAZ - see LICENSE file -for details. - -The proxy application and development library is covered by the -GPL - see LICENSE.proxy for details. +YAZ++ and ZOOM C++ use the same BSD-like license as YAZ - see LICENSE +file for details. Documentation ------------- -Directory sub contains documentation in HTML and PDF. You can -also read it online at http://www.indexdata.dk/yaz++/ +The "doc" directory contains documentation in HTML and PDF. +You can also read it online at http://www.indexdata.com/yazpp Overview -------- @@ -30,121 +28,22 @@ applications: yaz-my-client basic client yaz-my-server basic server - yaz-proxy Z39.50/SRW/SRU proxy. + zclient basic ZOOM client Directory structure of the YAZ++ package: -- src (C++ library) -- zoom (C++ source for ZOOM) - -- proxy (C++ source for proxy) -- include/yaz++ (C++ headers) - -- include/yaz++/proxy (C++ headers for proxy) - -- lib (compiled libraries) -- win (Windows build files) -- doc (DocBook-format documentation) - -- etc (Proxy config + XSLT files) - -Installation, Unix ------------------- - -Make sure you have a C and C++ compiler available. gcc and g++ work fine. - -Before compilation can take place YAZ must be installed. It goes, roughly, -like this: - - $ cd yaz- - $ ./configure - $ make - $ su - # make install - $ ^D - $ cd .. - -The YAZ proxy uses a configuration file in XML and libxml2 and libxslt -is required in order for the config facility to work. Many systems already -have libxml2/libxslt installed. In that, case remember to get the devel -version of that as well (not just the runtime). Libxml2/libxslt can also be -compiled easily on most systems. See http://www.xmlsoft.org/ for more -information. - -Then build YAZ++: - - $ cd yaz++- - $ ./configure - $ make - -If you do have libxslt installed and configure above does not find it, -use option --with-xslt=PREFIX to specify location of libxslt (which includes -libxml2). The configure script looks for PREFIX/bin/xslt-config. - -Installation, Windows ---------------------- - -YAZ++ for WIN32 should run on Windows 95/98/2K and Windows NT 4.0. -Yaz++ was built using Microsoft Visual C++ 6.0. Other compilers -should work but makefile/project files will have to be created for -those compilers. - - Workspace yazxx.dsw includes the projects - yazxx.dsp - builds yazxx.dll - yazclient.dsp - builds yazmyclient.exe - yazserver.dsp - builds yazmyserver.exe - yazproxy.dsp - builds yazproxy.exe - -About the proxy ---------------- - -For the proxy the actual target is determined in by the OtherInfo -part of the InitRequest. We've defined an OID for this which we call -PROXY. The OID is 1.2.840.10003.10.1000.81.1. - - OtherInformation ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{ - category [1] IMPLICIT InfoCategory OPTIONAL, - information CHOICE{ - characterInfo [2] IMPLICIT InternationalString, - binaryInfo [3] IMPLICIT OCTET STRING, - externallyDefinedInfo [4] IMPLICIT EXTERNAL, - oid [5] IMPLICIT OBJECT IDENTIFIER}} --- - InfoCategory ::= SEQUENCE{ - categoryTypeId [1] IMPLICIT OBJECT IDENTIFIER OPTIONAL, - categoryValue [2] IMPLICIT INTEGER} - -The InfoCategory is present with categoryTypeId set to the PROXY OID -and categoryValue set to 0. The information in OtherInformation uses -characterInfo to represent the target using the form target[:port][/db]. - -For clients that don't set the PROXY OtherInformation, a default -target can be specified using option -t for proxy. - -Example: - We start the proxy so that it listens on port 9000. The default - target is Bell Labs Library unless it is overridden by a client in - the InitRequest. - - $ ./yaz-proxy -t z3950.bell-labs.com/books @:9000 - - The client is started and talks to the proxy without specifying - a target. Hence this client will talk to the Bell Labs server. - - $ ./yaz-client localhost:9000 - - The client is started and it specifies the actual target itself. - - $ ./yaz-client -p localhost:9000 bagel.indexdata.dk/gils - - For ZAP the equivalent would be - proxy=localhost:9000 - target=bagel.indexdata.dk/gils - Simple, huh! - ZOOM-C++ -------- The ZOOM library in this distribution implements the ZOOM C++ binding described on the ZOOM web-site at - http://zoom.z3950.org/bind/cplusplus/index.html + http://zoom.z3950.org/bind/cplusplus/ It provides a simple but powerful API for constructing Z39.50 client applications. See the documentation in doc/zoom.xml for much more information.