fcoreutils 0.0.19

High-performance GNU coreutils replacement with SIMD and parallelism
Documentation
[package]
name = "fcoreutils"
version = "0.0.19"
edition = "2024"
license = "MIT"
description = "High-performance GNU coreutils replacement with SIMD and parallelism"
homepage = "https://github.com/AiBrush/coreutils-rs"
repository = "https://github.com/AiBrush/coreutils-rs"
readme = "README.md"
keywords = ["coreutils", "cli", "performance", "simd"]
categories = ["command-line-utilities", "filesystem"]
exclude = [
    "dist/",
    ".github/",
    "scripts/",
    "benches/",
    "instructions.md",
    "research-reference.md",
    "ARCHITECTURE.md",
    "PROGRESS.md",
    "CONTRIBUTING.md",
    "SECURITY.md",
    "CODE_OF_CONDUCT.md",
]

[lib]
name = "coreutils_rs"
path = "src/lib.rs"

[[bin]]
name = "fwc"
path = "src/bin/fwc.rs"

[[bin]]
name = "fcut"
path = "src/bin/fcut.rs"

[[bin]]
name = "fbase64"
path = "src/bin/fbase64.rs"

[[bin]]
name = "fsha256sum"
path = "src/bin/fsha256sum.rs"

[[bin]]
name = "fsort"
path = "src/bin/fsort.rs"

[[bin]]
name = "ftr"
path = "src/bin/ftr.rs"

[[bin]]
name = "funiq"
path = "src/bin/funiq.rs"

[[bin]]
name = "fb2sum"
path = "src/bin/fb2sum.rs"

[[bin]]
name = "ftac"
path = "src/bin/ftac.rs"

[[bin]]
name = "fmd5sum"
path = "src/bin/fmd5sum.rs"

[dependencies]
# CLI argument parsing
clap = { version = "4", features = ["derive", "cargo"] }

# SIMD byte operations (auto-detects AVX2/NEON)
memchr = "2"

# Memory-mapped I/O
memmap2 = "0.9"

# Parallelism
rayon = "1"

# Hashing
blake2b_simd = "1"

# Base sha2/md-5 (always needed)
sha2 = "0.10"
md-5 = "0.10"

# Base64 (SIMD-accelerated)
base64-simd = "0.8"

# Fast float parsing for sort -g
fast-float = "0.2"

# Regex for tac -r
regex = "1"

# System calls (readahead, madvise)
libc = "0.2"

# Error handling
thiserror = "2"
anyhow = "1"

[dev-dependencies]
criterion = { version = "0.8", features = ["html_reports"] }
proptest = "1"
tempfile = "3"

[[bench]]
name = "wc_benchmark"
harness = false

[[bench]]
name = "hash_benchmark"
harness = false

[profile.release]
lto = "fat"
codegen-units = 1
panic = "abort"
strip = true
opt-level = 3

[profile.bench]
inherits = "release"
debug = true
strip = false

# Enable ASM acceleration for hash crates on non-MSVC targets
# (sha2-asm/md5-asm use .S assembly files that MSVC cl.exe can't compile)
[target.'cfg(not(target_env = "msvc"))'.dependencies]
sha2 = { version = "0.10", features = ["asm"] }
md-5 = { version = "0.10", features = ["asm"] }