boundbook 0.3.21

A Rust rewrite of the Bound Book format by ef1500
Documentation
# `boundbook` - A Rust port of [libbbf]https://github.com/ef1500/libbbf with some extras


Follows the [Bound Book Format specification (v3)](https://github.com/ef1500/libbbf/blob/main/SPECNOTE.txt)

Features I've added so far:

- A CBZ-to-BBF converter
- An in-terminal book reader

## Installing the CLI


To install the boundbook CLI, run:

```rs
cargo install boundbook -F cli
```

Without the `cli` feature flag, the `boundbook` binary will do nothing.

---

# Command-Line Help for `boundbook`

This document contains the help content for the `boundbook` command-line program.

**Command Overview:**

* [`boundbook`]#boundbook
* [`boundbook docs`]#boundbook-docs
* [`boundbook create`]#boundbook-create
* [`boundbook info`]#boundbook-info
* [`boundbook verify`]#boundbook-verify
* [`boundbook extract`]#boundbook-extract
* [`boundbook from-cbz`]#boundbook-from-cbz
* [`boundbook read`]#boundbook-read
* [`boundbook complete`]#boundbook-complete

## `boundbook`

BBF CLI

**Usage:** `boundbook <COMMAND>`

###### **Subcommands:**

* `docs` — Print help
* `create` — Create a BBF file from images
* `info` — Display BBF file information
* `verify` — Verify BBF file integrity
* `extract` — Extract pages from a BBF file
* `from-cbz` — Convert CBZ archive to BBF format
* `read` — Read a BBF file in the terminal
* `complete` — Generate CLI completions



## `boundbook docs`

Print help

**Usage:** `boundbook docs`



## `boundbook create`

Create a BBF file from images

**Usage:** `boundbook create [OPTIONS] --output <OUTPUT> <INPUTS>...`

###### **Arguments:**

* `<INPUTS>` — Input files or directories containing images

###### **Options:**

* `-o`, `--output <OUTPUT>` — Output BBF file path
* `-O`, `--order <ORDER>` — Page order file (format: filename:index)
* `-S`, `--sections <SECTIONS>` — Sections file (format: Name:Target[:Parent])
* `-s`, `--section <ADD_SECTIONS>` — Add section markers (format: Name:Target[:Parent])
* `-m`, `--meta <METADATA>` — Add metadata (format: Key:Value[:Parent])
* `-a`, `--alignment <ALIGNMENT>` — Byte alignment exponent (default: 12 = 4096 bytes)

  Default value: `12`
* `-r`, `--ream-size <REAM_SIZE>` — Ream size exponent (default: 16 = 65536 bytes)

  Default value: `16`
* `-v`, `--variable-ream-size` — Enable variable ream size for smaller files
* `-d`, `--auto-detect-sections` — Auto-detect subdirectories with images and create sections from directory names



## `boundbook info`

Display BBF file information

**Usage:** `boundbook info <INPUT>`

###### **Arguments:**

* `<INPUT>`



## `boundbook verify`

Verify BBF file integrity

**Usage:** `boundbook verify [OPTIONS] <INPUT>`

###### **Arguments:**

* `<INPUT>` — BBF file to verify

###### **Options:**

* `--index-only` — Verify only the index hash (faster)
* `--asset <ASSET>` — Verify a specific asset by index



## `boundbook extract`

Extract pages from a BBF file

**Usage:** `boundbook extract [OPTIONS] <INPUT>`

###### **Arguments:**

* `<INPUT>` — BBF file to extract from

###### **Options:**

* `-o`, `--output <OUTPUT>` — Output directory for extracted pages

  Default value: `./extracted`
* `--section <SECTION>` — Extract only pages from a specific section
* `--until <UNTIL>` — Stop extraction when reaching a section matching this string
* `--range <RANGE>` — Extract a specific page range (e.g., 1-10 or 5)



## `boundbook from-cbz`

Convert CBZ archive to BBF format

**Usage:** `boundbook from-cbz [OPTIONS] --output <OUTPUT> <INPUT>`

###### **Arguments:**

* `<INPUT>` — Input CBZ file or directory containing CBZ files

###### **Options:**

* `-o`, `--output <OUTPUT>` — Output BBF file
* `-m`, `--meta <METADATA>` — Add metadata (format: Key:Value[:Parent])
* `-k`, `--keep-temp` — Keep temporary files for debugging
* `-d`, `--directory-mode` — Process directory of CBZ files as chapters



## `boundbook read`

Read a BBF file in the terminal

**Usage:** `boundbook read [OPTIONS] <INPUT>`

###### **Arguments:**

* `<INPUT>` — BBF file to read

###### **Options:**

* `-P`, `--prerender` — Pre-render all pages before reading (uses more memory but smoother navigation)
* `-W`, `--max-width <PIXELS>` — Maximum width in pixels (aspect ratio preserved)
* `-H`, `--max-height <PIXELS>` — Maximum height in pixels (aspect ratio preserved)
* `--max-cols <COLS>` — Maximum width in terminal columns (overrides max-width if set)
* `--max-rows <ROWS>` — Maximum height in terminal rows (overrides max-height if set)
* `-f`, `--filter <FILTER>` — Image scaling filter quality

  Default value: `lanczos3`

  Possible values: `nearest`, `triangle`, `catmull-rom`, `gaussian`, `lanczos3`

* `-g`, `--enable-gif-animation` — Enable GIF animation playback

  Default value: `true`
* `--gif-speed <MULTIPLIER>` — GIF animation frame delay multiplier (1.0 = normal speed)

  Default value: `1.0`
* `-l`, `--gif-loop` — Loop GIFs infinitely

  Default value: `true`
* `-i`, `--gif-interpolate <COUNT>` — Number of interpolated frames to generate between each GIF frame (0 = disabled)

  Default value: `0`
* `-m`, `--interpolation-method <INTERPOLATION_METHOD>` — Frame interpolation algorithm

  Default value: `blend`

  Possible values:
  - `blend`:
    Simple linear blending (fastest)
  - `smooth`:
    Weighted blending with ease-in/ease-out
  - `cosine`:
    Cosine interpolation for smoother transitions
  - `cubic`:
    Cubic hermite spline interpolation
  - `perlin`:
    Perlin smoothstep (quintic hermite)
  - `exponential`:
    Exponential ease-in-out
  - `optical-flow-sparse`:
    Optical flow based (Lucas-Kanade sparse)
  - `motion-compensated`:
    Motion-compensated blending (simplified Horn-Schunck)
  - `catmull-rom`:
    Catmull-Rom spline (requires 4 frames, falls back to cubic)

* `--sidebar-width <SIDEBAR_WIDTH>` — Sidebar width in columns

  Default value: `30`
* `--slideshow-delay <SECONDS>` — Slideshow auto-advance delay in seconds

  Default value: `5.0`



## `boundbook complete`

Generate CLI completions

**Usage:** `boundbook complete <SHELL>`

###### **Arguments:**

* `<SHELL>`

  Possible values: `bash`, `elvish`, `fish`, `power-shell`, `zsh`, `nushell`, `clink`, `fig`




<hr/>

<small><i>
    This document was generated automatically by
    <a href="https://crates.io/crates/clap-markdown"><code>clap-markdown</code></a>.
</i></small>