Rust bindings, libs, and binaries for Evergreen and related projects.
General purpose threaded server, similar to Perl Net::Server.
Evergreen + OpenSRF bindings with OpenSRF server, nascent services, and other binaries.
Library for reading/writing MARC Binary, MARC XML, and MARC Breaker.
SIP2 client library
SIP2 Mediator
Currently assumes Ubuntu 22.04.
Actions that communicate via OpenSRF require the OpenSRF/Evergreen Redis branches be installed and running.
Other actions, e.g. eg-marc-export, which communicate via database connection do not require special OpenSRF/Evergreen code.
Follow these ansible instructions to install on a server/VM.
Follow these instructions to create a Docker container.
sudo apt install git build-essential pkg-config libssl-dev rust-all
git clone https://github.com/kcls/evergreen-universe-rs
Build and install commands are compiled into a Makefile for convenience
and documentation. See the Makefile for individual cargo
commands.
cd evergreen-universe-rs
# This will also download and compile dependencies.
make build
# Run unit tests
make test
# To also run the live tests.
# These require a locally running Evergreen instance with
# Concerto data.
cargo test --package evergreen --test live -- --ignored --nocapture
# OPTIONAL: Install compiled binaries to /usr/local/bin/
sudo make install-bin
egsh
is an Evergreen-aware srfsh clone
cargo run --package evergreen --bin egsh
NOTE: If binaries are installed, the above command may be shortened to just
egsh
.
egsh# help
egsh# login admin demo123
# This uses the authtoken stored from last successful use of 'login'
# as the implicit first parameter to the pcrud API call.
egsh# reqauth open-ils.pcrud open-ils.pcrud.retrieve.au 1
egsh# req opensrf.settings opensrf.system.echo {"a b c":123} "12" [1,2,3]
egsh# cstore retrieve actor::user 1
egsh# cstore search aou {"shortname":"BR1"}