← Projects
SoftwareALPHA

Ferrox

A modular file explorer in Rust. A virtual filesystem core separates disk operations from the interface, with an implemented CLI and a planned TUI.

RustVFSCLILinux
My role
Author and developer
Project updated

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 with mv, and removal with rm.
  • 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. rm removes 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.

Project journal