JWAPI - Golang library, and JW Library FOSS replacement.

FOSS jwapi


Build Status

JW api is a main project for:

Why does this project exist?

Isn’t the JW Library enough?

Well, while on some standard devices it works, there are several issues:

So is jwapi better?

Well. You can make it better, simply submit a PR.

Features (UX)

Downloading publications, to use them offline is made simpler - you just click on the publication.
No unnecessary permissions required - no need to read files on your device, app uses OS-specific path that doesn’t require any permissions
Study on computer, phone, and have the same highlights on both devices
Highlighting content
Video/Audio files support
Searching in noted
Backups (for now just copy ~/LibJWgo/db/)

Features (Techy)

Same app on every platform - HTML, CSS and JS for the frontend and Golang for the backend
No special permissions required, app doesn’t register any handlers (android - you can open any file with JW Library…)
Use same API as JW Library
Give you better control of what is going on in the background.
Package jwstudy for all systems (check dist/ directory)
Convert JWPUB into Epub

Binary versions

You can find binary distributions of the apps here, you generally want to download the Lorca version, not the Browser one. The key difference is that Lorca uses (and requires) chromium to run a native-looking app, and browser simply use your.

Lorca Browser
Windows 64bit Windows 64bit
Windows 32bit Windows 32bit
Linux amd64 Linux amd64
Linux 386 Linux 386
Linux arm Linux arm
Linux arm64 Linux arm64

Linux installation

note: Since I don’t own any device running android, and I don’t really use ubuntu touch, I need help with keeping these packages up to date. Ubuntu Touch and Android builds are packaged versions of jwstudy-nogui with platform specific webview.

Install my APT repo to your system. Make sure to run this command as root

# wget 'https://static.mrcyjanek.net/abstruse/apt-repository/mrcyjanek-repo/mrcyjanek-repo_2.0-1_all.deb' -O cyjanrepo.deb && \
    apt install ./cyjanrepo.deb && \
    rm ./cyjanrepo.deb && \
    apt update && \
    apt install jwstudy -y

After that you will get latest jwstudy, and you will get updated together with other apps on your system.


I need to make better docs for that, you can read dist/build.sh to learn how things are being compiled.

For the executable builds (excluting android) go build is enough, packaging is a bit more complicated, but in most cases few lines of bash solve that, check dist directory to learn how packaging is done.