boundbook 0.3.12

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>