The UDA API provides plugin driven data abstraction.
The UDA can be either run as a client-server API, running as thin client with all functionality being handled on a remote server, or as fat-client API where both the client access and plugin functionality is run on the local machine.
UDA is licenced under an Apache 2.0 licence. See LICENCE.txt for details.
See the github pages for current Docs
The source code can be downloaded from:
https://github.com/ukaea/UDA/releases/
The UDA git repository can be cloned from:
git clone [email protected]:ukaea/UDA.git
The easiest way to obtain the client is to pip install the python wrapper (pyuda), wheels are uploaded for every tagged release from version 2.7.6. Further details are available on pypi.
pip install uda
For any other use cases please see the documentation to build from source here.
There are some notes available here in the documentation.
Note that the most up-to-date build script will be the one used for testing in the github CI tests here. This will contain the relevant buld steps for Ubuntu and MacOS. There are also some dockerfiles available here which will show the build steps for some other Linux flavours.
An example installation for ubuntu 22.10 would be as follows.
UDA requires the following to packages in order to build:
Name | Version | Required For |
---|---|---|
cmake | > 3.0 | |
OpenSSL | ||
LibXml2 | ||
libfmt | ||
spdlog | ||
capnproto | ||
boost | C++, Python & HTTP wrappers | |
LibMemcached | to enable caching | |
python | > 3.0 | Python wrapper |
Start by installing all system-level dependencies.
sudo apt update && sudo apt install -y
git
libboost-dev
libboost-program-options-dev
libssl-dev
cmake
build-essential
pkg-config
libxml2-dev
libspdlog-dev
ninja-build
capnproto
libcapnp-dev
python3-dev
python3-pip
python3-venv
Configure the cmake project
cmake -G Ninja -B build . \
-DBUILD_SHARED_LIBS=ON \
-DSSLAUTHENTICATION=ON \
-DCLIENT_ONLY=OFF \
-DENABLE_CAPNP=ON \
-DCMAKE_INSTALL_PREFIX=install
build and install
cmake --build build -j --config Release --target install