Add Debian YAZ proxy
[yazproxy-moved-to-github.git] / README
1 YAZ proxy - A Z39.50/SRW/SRU proxy.
2
3 $Id: README,v 1.4 2004-04-11 12:30:26 adam Exp $
4
5 Introduction
6 ------------
7
8 YAZ proxy is a powerful general purpose Z39.50/SRW/SRU proxy.
9 The proxy application and development library is covered by the
10 GPL - see LICENSE for details.
11
12 Documentation
13 -------------
14
15 The "doc" directory contains documentation in HTML and PDF.
16 You can also read it online at http://www.indexdata.dk/yazproxy/
17
18 Overview
19 --------
20
21 YAZ proxy builds a programmers' library libyazproxy.lib and the
22 proxy application.
23
24 Directory structure of the YAZ++ package:
25
26   -- src (YAZ proxy library and application)
27   -- include/yazproxy (C++ headers for proxy) 
28   -- lib (compiled libraries)
29   -- win (Windows build files)
30   -- doc (DocBook-format documentation)
31   -- etc (Proxy config + XSLT files)
32
33 About the proxy
34 ---------------
35
36 For the proxy the actual target is determined in by the OtherInfo
37 part of the InitRequest. We've defined an OID for this which we call
38 PROXY. The OID is 1.2.840.10003.10.1000.81.1. 
39
40   OtherInformation   ::= [201] IMPLICIT SEQUENCE OF SEQUENCE{
41     category           [1]   IMPLICIT InfoCategory OPTIONAL, 
42     information        CHOICE{
43       characterInfo            [2]  IMPLICIT InternationalString,
44       binaryInfo               [3]  IMPLICIT OCTET STRING,
45       externallyDefinedInfo    [4]  IMPLICIT EXTERNAL,
46       oid                      [5]  IMPLICIT OBJECT IDENTIFIER}}
47 --
48   InfoCategory ::= SEQUENCE{
49       categoryTypeId   [1]   IMPLICIT OBJECT IDENTIFIER OPTIONAL,
50       categoryValue    [2]   IMPLICIT INTEGER}
51
52 The InfoCategory is present with categoryTypeId set to the PROXY OID
53 and categoryValue set to 0. The information in OtherInformation uses
54 characterInfo to represent the target using the form target[:port][/db].
55
56 For clients that don't set the PROXY OtherInformation, a default
57 target can be specified using option -t for proxy.
58
59 Example:
60   We start the proxy so that it listens on port 9000. The default
61   target is Bell Labs Library unless it is overridden by a client in
62   the InitRequest.
63
64      $ ./yaz-proxy -t z3950.bell-labs.com/books @:9000
65
66   The client is started and talks to the proxy without specifying
67   a target. Hence this client will talk to the Bell Labs server.
68
69      $ ./yaz-client localhost:9000
70
71   The client is started and it specifies the actual target itself.
72
73      $ ./yaz-client -p localhost:9000 bagel.indexdata.dk/gils
74
75   For ZAP the equivalent would be
76      proxy=localhost:9000
77      target=bagel.indexdata.dk/gils
78   Simple, huh!
79