Chapter 3. YAZ Proxy Comparison

The table below lists facilities either supported by either YAZ Proxy or Metaproxy.

Table 3.1. Metaproxy / YAZ Proxy comparison

FacilityMetaproxyYAZ Proxy
Z39.50 serverUsing filter frontend_netSupported
SRU serverSupported with filter sru_z3950Supported
Z39.50 clientSupported with filter z3950_clientSupported
SRU clientUnsupportedUnsupported
Connection reuseSupported with filter session_sharedSupported
Connection shareSupported with filter session_sharedUnsupported
Result set reuseSupported with filter session_sharedWithin one Z39.50 session / HTTP keep-alive
Record cacheSupported by filter session_sharedSupported for last result set within one Z39.50/HTTP-keep alive session
Z39.50 Virtual database, i.e. select any Z39.50 target for databaseSupported with filter virt_dbUnsupported
SRU Virtual database, i.e. select any Z39.50 target for pathSupported with filter virt_db, sru_z3950Supported
Multi target searchSupported with filter multi (round-robin)Unsupported
Retrieval and search limitsSupported using filter limitSupported
Bandwidth limitsSupported using filter limitSupported
Connect limitsSupported by filter frontend_net (connect-max)Supported
Retrieval sanity check and conversionsSupported using filter record_transformSupported
Query check Supported by query_rewrite which may be check a query and throw diagnostics (errors) Supported
Query rewriteSupported with query_rewriteUnsupported
Session invalidate for -1 hitsUnsupportedSupported
ArchitectureMulti-threaded + select for networked modules such as frontend_net)Single-threaded using select
ExtensabilityMost functionality implemented as loadable modulesUnsupported and experimental
USEMARCONSupported with record_transformSupported
Portability Requires YAZ, YAZ++ and modern C++ compiler supporting Boost. Requires YAZ and YAZ++. STL is not required so pretty much any C++ compiler out there should work.