Skip to content

TheBearodactyl/boundbook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

boundbook - A Rust port of libbbf with some extras

Follows the Bound Book Format specification (v3)

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:

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

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


This document was generated automatically by clap-markdown.

About

A port of the Bound Book format to Rust

Resources

License

Stars

Watchers

Forks

Packages

No packages published