One core, multiple interfaces
Ferrox is a file explorer written in Rust, built around a specific separation: filesystem operations should not depend on how they are presented to the user. The same core can support a command-line interface and, eventually, an interactive terminal interface.
The project is at v0.1.0-alpha, according to its README. The current implementation is a userspace application with a local backend based on std::fs. It is not an operating system, a finished GUI or a tool with demonstrated comparative performance.
Architecture
The Cargo workspace contains three crates with distinct responsibilities:
| Component | Responsibility | Documented state |
|---|---|---|
ferrox-core |
VFS contract, models and local backend | Implemented, alpha API |
ferrox-cli |
Arguments, commands and console presentation | Implemented |
ferrox-tui |
Future interactive terminal interface | Placeholder |
The FileSystem trait defines read_dir, metadata, exists, create_dir, remove, rename and find. LocalFileSystem implements those operations against the host filesystem. The VfsEntry, VfsMetadata and NodeType models represent entries, metadata and node types.
ferrox-cli
│
▼
FileSystem → LocalFileSystem → std::fs
▲
│
ferrox-tui (planned; not integrated yet)
The CLI uses clap to parse arguments. Filesystem operations remain separate from presentation: directory-first sorting and readable size formatting, for example, are handled by the CLI.
What is implemented
- Directory listing with
ls, placing directories before files and sorting names case-insensitively. - Metadata inspection with
stat. - Directory creation with
mkdir, moving or renaming withmv, and removal withrm. - Recursive search with
find, using an explicit stack and case-sensitive substring matching. - Readable sizes in B, KB, MB and GB in directory listings.
- Eight local-backend unit tests present in the reviewed code, using temporary directories.
The presence of tests is evidence of verification work, not a claim that they were executed or provide exhaustive coverage in this portfolio review.
Try the CLI
A Rust development environment and Cargo are required. These commands build from the repository and demonstrate read-only operations; this website does not run a live demo.
git clone https://github.com/fabricioarce/ferrox.git
cd ferrox
cargo build --release
cargo run -p ferrox-cli -- --help
cargo run -p ferrox-cli -- ls .
cargo run -p ferrox-cli -- stat README.md
cargo run -p ferrox-cli -- find main .
In the reviewed code, find takes the pattern first and the optional path second: find <pattern> [path]. This page follows the CLI argument definition, although one README example reverses that order.
Ferrox is alpha software.
rmremoves directories recursively and the reviewed code does not implement a trash bin or confirmation prompt. Use only disposable test data when exploring write operations.
Limitations and next steps
The TUI still prints a placeholder message. The current VFS is synchronous; asynchronous I/O, fuzzy search and the three-pane interface are roadmap plans, not available features.
The current search skips directories it cannot read without reporting those errors to the caller. This review also does not establish exhaustive handling of symbolic links, permissions, large trees or failed operations. These areas deserve verification before recommending broader use.
The GUI, plugins and possible adaptation to a custom operating environment belong to the long-term vision. Roadmap latency targets are goals, not achieved benchmarks.
Evidence and references
This page describes a snapshot reviewed on September 7, 2026, based on commit f8661c3, dated September 6, 2026. It does not automatically update when the repository changes.