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 OpenSRF/Evergreen Redis.
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
# OPTIONAL: Install compiled binaries and systemd service files.
sudo make install
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
(or/usr/local/bin/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"}