fb2epub

Crates.iofb2epub
lib.rsfb2epub
version0.1.4
created_at2026-01-23 11:37:57.807006+00
updated_at2026-01-23 11:37:57.807006+00
descriptionConverter from fb2 to epub
homepage
repositoryhttps://github.com/KiberBomzh/fb2epub
max_upload_size
id2064206
size101,352
(KiberBomzh)

documentation

README

fb2epub

Cli tool for convering fb2 books to epub. Written in pure rust.

Installation

With cargo:

cargo install fb2epub --features=bin-deps

Or download binary files here.

Flags

  • -i, --input path - input books or directories or zip archive with books
  • -o, --output path - output path. If input is one book - can be directory or file name, else - only directory
  • --styles path/to/file.css - use custom css styles
  • -r, --recursive - search books as well in subdirectories
  • -m, --multithreading - use multithreading (useful if you need to convert many books)
  • --replace - REMOVE input files

Usage as library

Add to your project with:

cargo add fb2epub

Then use function run:

use std::path::PathBuf;

fn main() {
    let input_book = PathBuf::from("some_book.fb2");
    let output_book = PathBuf::from("out_book.epub");
    
    // delete input book
    let replace = false;
    
    // dont show small errors (image decoder errors, etc)
    let suspend_error_messages = false;
    
    // path to css styles Option<PathBuf>, if None will be used default styles
    let styles = None;
    
    
    fb2epub::run(
        &input_book,
        &output_book,
        replace,
        &styles,
        suspend_error_messages
    ).unwrap(); // returns Result<PathBuf>
    // PathBuf is path to output book
    
    // as well you can convert zip
    let input_archive = PathBuf::from("some_book.zip");
    let output_archive = PathBuf::from("out_archive.epub");
    
    fb2epub::run(
        &input_archive,
        &output_archive,
        replace,
        &styles,
        suspend_error_messages
    ).unwrap();
    
    
    // or even zip with many books in it
    let zip_with_many_books = PathBuf::from("zip_with_books.zip");
    
    // for it output path must be a directory
    let output_dir = PathBuf::from("some_dir");
    
    fb2epub::run(
        &zip_with_many_books,
        &output_dir,
        replace,
        &styles,
        suspend_error_messages
    ).unwrap();
}
Commit count: 59

cargo fmt