6 releases

0.1.5 Oct 22, 2023
0.1.4 Jul 14, 2023
0.1.3 Jul 16, 2022
0.1.2 Jan 29, 2022
0.1.0 Sep 21, 2021

#482 in Text processing

Custom license

1.5K SLoC


Download O'Reilly books as EPUB.

GitHub release Downloads Crates.io License

Table of Contents


Archives of precompiled binaries for orly are available for Windows, macOS and Linux. Linux and Windows binaries are static executables.


If you're a Rust programmer, orly can be installed with cargo.

> Note that the minimum supported version of Rust for `orly` is **1.54.0**.

You need to install the development headers of libxml2 first. The process depends on the OS being used:

  • Windows

    First install vcpkg. After that install libxml2:

    vcpkg install libxml2:x64-windows-static

    Export compiler options to force static linking:

  • Linux

    On linux systems you'd pkg-config. For Debian-based distributions:

    apt-get install libxml2-dev pkg-config
  • macOS

    Use brew to install libxml2 and pkg-config:

    brew install libxml2 pkg-config

Finally install orly:

cargo install orly

After installation, the orly command will be available. Check the command line section for supported commands.


  • You will need an O'Reily account with a non-expired subscription.

  • Find the book you want to download and copy its id (the digits at the end of the url).

  • Use your credentials or a cookie string to download the book:

    orly 1234567890 --creds "email@example.com" "password"
    # or
    orly 1234567890 --cookie 'BrowserCookie=....'

Command line interface

Currently orly supports these commands

    orly [OPTIONS] <BOOK_IDS>...

    <BOOK_IDS>...    Book ID to download. Digits from the URL

    -c, --creds <EMAIL> <PASSWORD>    Sign in credentials
        --cookie <COOKIE_STRING>      Cookie string
    -h, --help                        Print help information
    -k, --kindle                      Apply CSS tweaks for kindle devices
    -o, --output <OUTPUT DIR>         Directory to save the final epub to [default: .]
    -t, --threads <THREADS>           Maximum number of concurrent http requests [default: 20]
    -v, --verbose                     Level of verbosity
    -V, --version                     Print version information


~755K SLoC