Thoth (/toʊt, θoʊθ/, 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
- A REST API to export metadata in formats like ONIX, MARC, etc.
- A WebAssembly GUI to manage metadata records.
For more information about Thoth, its data and metadata formats, and more, see the repo's wiki. You can also use GraphiQL to explore the GraphQL API (click on "Docs" at the top right), or RapiDoc to inspect the REST API.
- Rustup
- Stable Toolchain:
rustup default stable
- wasm-pack
- rollup
- A PostgreSQL database (included in docker-compose.yml if ran using docker)
libssl-dev
git clone https://github.com/thoth-pub/thoth.git
cd thoth
cp .env.example .env # Edit the credentials in .env
docker-compose up
git clone https://github.com/thoth-pub/thoth.git
cd thoth
cp .env.example .env # Edit the credentials in .env
cargo run init
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
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_GRAPHQL_API=https://api.thoth.pub \
--build-arg THOTH_EXPORT_API=https://export.thoth.pub \
. -t openbookpublishers/thoth
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 (RED) Fund, and Arcadia, a charitable fund of Lisbet Rausing and Peter Baldwin.