[package]
edition = "2024"
rust-version = "1.88"
name = "fstool"
version = "0.4.26"
build = false
exclude = [
"/web",
"/.github",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Build disk images and filesystems (ext2/3/4, MBR, GPT) from a directory tree and TOML spec, in the spirit of genext2fs."
readme = "README.md"
keywords = [
"filesystem",
"ext4",
"ext2",
"gpt",
"image",
]
categories = [
"filesystem",
"command-line-utilities",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/fstool"
[features]
amiga-lzx = [
"dep:compcol",
"compcol/amiga_lzx",
]
arc = []
cab = [
"dep:compcol",
"compcol/deflate",
"compcol/lzx",
"compcol/quantum",
]
cli = [
"dep:clap",
"spec",
"json",
"log",
"unix-host",
]
codecs = [
"gzip",
"xz",
"lzma",
"lz4",
"zstd",
"lzo",
"cab",
"amiga-lzx",
"lha",
"arc",
"sit",
"sevenz",
"rar",
"dmg-bzip2",
"dmg-lzfse",
]
containers = [
"dmg-encrypted",
"luks",
"qcow2-crypto",
]
default = [
"codecs",
"containers",
"spec",
"json",
"log",
"unix-host",
"cli",
"readline",
]
dmg-bzip2 = [
"dep:compcol",
"compcol/bzip2",
]
dmg-encrypted = ["dep:purecrypto"]
dmg-lzfse = [
"dep:compcol",
"compcol/lzfse",
]
fuse = [
"dep:fuser",
"unix-host",
]
gzip = [
"dep:compcol",
"compcol/gzip",
"compcol/zlib",
"compcol/deflate",
]
json = [
"dep:serde",
"dep:serde_json",
]
lha = []
log = ["dep:log"]
luks = [
"dep:purecrypto",
"json",
]
lz4 = [
"dep:compcol",
"compcol/lz4",
]
lzma = [
"dep:compcol",
"compcol/lzma",
]
lzo = [
"dep:compcol",
"compcol/lzo",
]
qcow2-crypto = ["luks"]
rar = [
"dep:compcol",
"compcol/rar5",
]
readline = ["dep:rustyline"]
sevenz = [
"dep:compcol",
"compcol/lzma",
"compcol/bzip2",
"compcol/deflate",
]
sit = []
spec = [
"dep:tomlproc",
"dep:serde",
]
unix-host = ["dep:libc"]
wasm = [
"dep:wasm-bindgen",
"dep:console_error_panic_hook",
"json",
]
xz = [
"dep:compcol",
"compcol/xz",
]
zstd = [
"dep:compcol",
"compcol/zstd",
]
[lib]
name = "fstool"
crate-type = [
"cdylib",
"rlib",
]
path = "src/lib.rs"
[[bin]]
name = "fstool"
path = "src/bin/fstool/main.rs"
required-features = ["cli"]
[[example]]
name = "format_empty_ext2"
path = "examples/format_empty_ext2.rs"
[[example]]
name = "inspect_gpt"
path = "examples/inspect_gpt.rs"
[[example]]
name = "memconv_smoke"
path = "examples/memconv_smoke.rs"
[[test]]
name = "apfs_external"
path = "tests/apfs_external.rs"
[[test]]
name = "archive_external"
path = "tests/archive_external.rs"
[[test]]
name = "cli_external"
path = "tests/cli_external.rs"
[[test]]
name = "clone_api"
path = "tests/clone_api.rs"
[[test]]
name = "compression_external"
path = "tests/compression_external.rs"
[[test]]
name = "dmg_external"
path = "tests/dmg_external.rs"
[[test]]
name = "exfat_external"
path = "tests/exfat_external.rs"
[[test]]
name = "ext2_external"
path = "tests/ext2_external.rs"
[[test]]
name = "ext3_external"
path = "tests/ext3_external.rs"
[[test]]
name = "ext4_external"
path = "tests/ext4_external.rs"
[[test]]
name = "f2fs_external"
path = "tests/f2fs_external.rs"
[[test]]
name = "fat32_external"
path = "tests/fat32_external.rs"
[[test]]
name = "fs_fuzz"
path = "tests/fs_fuzz.rs"
[[test]]
name = "fuse_external"
path = "tests/fuse_external.rs"
[[test]]
name = "grf_external"
path = "tests/grf_external.rs"
[[test]]
name = "hfs_plus_external"
path = "tests/hfs_plus_external.rs"
[[test]]
name = "iso9660_external"
path = "tests/iso9660_external.rs"
[[test]]
name = "littlefs_external"
path = "tests/littlefs_external.rs"
[[test]]
name = "luks_external"
path = "tests/luks_external.rs"
[[test]]
name = "merge_external"
path = "tests/merge_external.rs"
[[test]]
name = "ntfs_external"
path = "tests/ntfs_external.rs"
[[test]]
name = "partition_external"
path = "tests/partition_external.rs"
[[test]]
name = "qcow2_external"
path = "tests/qcow2_external.rs"
[[test]]
name = "rename_large_dir"
path = "tests/rename_large_dir.rs"
[[test]]
name = "reopen_mutate"
path = "tests/reopen_mutate.rs"
[[test]]
name = "repack_unified"
path = "tests/repack_unified.rs"
[[test]]
name = "spec_external"
path = "tests/spec_external.rs"
[[test]]
name = "squashfs_external"
path = "tests/squashfs_external.rs"
[[test]]
name = "xfs_external"
path = "tests/xfs_external.rs"
[dependencies.charcode]
version = "0.1.3"
features = [
"std",
"euc-kr",
"shift-jis",
"euc-jp",
"single-byte",
]
default-features = false
[dependencies.clap]
version = "4"
features = ["derive"]
optional = true
[dependencies.compcol]
version = "0.6.11"
features = [
"std",
"checksum",
]
optional = true
default-features = false
[dependencies.fuser]
version = "0.16"
features = ["libfuse"]
optional = true
[dependencies.intl]
version = "0.6.1"
features = [
"case",
"full",
]
default-features = false
[dependencies.log]
version = "0.4"
optional = true
[dependencies.purecrypto]
version = "0.6.29"
features = [
"std",
"cipher",
"hash",
"kdf",
"rng",
]
optional = true
default-features = false
[dependencies.rustyline]
version = "15"
optional = true
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.tomlproc]
version = "0.1.1"
features = ["serde"]
optional = true
default-features = false
[dependencies.uuid]
version = "1"
features = ["v4"]
[dev-dependencies.env_logger]
version = "0.11"
[dev-dependencies.lzfse_rust]
version = "0.2"
[dev-dependencies.tempfile]
version = "3"
[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1"
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
version = "1"
features = [
"v4",
"js",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "=0.2.121"
optional = true
[target."cfg(unix)".dependencies.libc]
version = "0.2"
optional = true