tosteiner / thoth

GraphQL API for bibliographic data

Home Page:https://staging.thoth.openbookpublishers.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Thoth

Open bibliographic metadata management and dissemination system

Travis Info Thoth Releases Crate Info License Info

About

Thoth (/θoʊθ, toʊt/, Greek Θώθ < Coptic Ⲑⲱⲟⲩⲧ < Egyptian ḏḥwtj) is an Open Dissemination System for Open Access books. Written purely in rust, it consists of:

  • A GraphQL API, implementing a data model specifically designed for OA books
  • An actions API to export metadata in formats like ONIX, MARC, etc.
  • A WebAssembly GUI to manage metadata records.

Getting Started

Requirements

  • Rustup
  • Stable Toolchain: rustup default stable
  • wasm-pack
  • rollup
  • A PostgreSQL database (included in docker-compose.yml if ran using docker)
  • libssl-dev

Running with docker

git clone https://github.com/thoth-pub/thoth.git
cd thoth
cp .env.example .env  # Edit the credentials in .env
docker-compose up

Running with rust (cargo)

Config

git clone https://github.com/thoth-pub/thoth.git
cd thoth
cp .env.example .env  # Edit the credentials in .env

API

cargo run init

Wasm GUI

wasm-pack build thoth-app/ --target web \
  && rollup thoth-app/main.js --format iife --file thoth-app/pkg/thoth_app.js \
  && cargo run start app

Building with docker

The wasm APP needs to know the endpoint the API will be running at compile time, we must provide THOTH_API as a build argument to the docker daemon upon build:

docker build --build-arg THOTH_API=https://api.thoth.openbookpublishers.com . -t openbookpublishers/thoth

Acknowledgements

Thoth is being developed as part of the COPIM project, an international effort to build community-owned, open systems and infrastructures to enable Open Access book publishing to flourish. COPIM is funded by the Research England Development Fund (REDFund) and Arcadia.

About

GraphQL API for bibliographic data

https://staging.thoth.openbookpublishers.com

License:Apache License 2.0


Languages

Language:Rust 99.7%Language:HTML 0.1%Language:Dockerfile 0.1%Language:CSS 0.1%Language:Shell 0.0%Language:JavaScript 0.0%