Skip to content

wenshui330/roco

Repository files navigation

Roco icon

Roco

A faster copy path for Windows Explorer.

Roco redirects Explorer file transfers to Windows' built-in Robocopy engine,
combining familiar copy-and-paste workflows with high-throughput directory copying.

Platform Language Engine License

English | 简体中文


Overview

Windows Explorer handles large individual files well, but copying a project directory with thousands of small files can be disproportionately slow. Roco keeps the Explorer workflow and replaces the transfer path with the system-provided robocopy.exe.

Once enabled, Roco handles file paste, Explorer's Paste commands, and filesystem drag-and-drop. Text, images, and other non-file clipboard content remain untouched.

Roco is a user-level application: it requires no administrator privileges, installs no service, and adds no third-party copy engine.

Highlights

  • Explorer-native workflow - keep using Ctrl+C, Ctrl+X, Ctrl+V, context menus, the command bar, and drag-and-drop.
  • Robocopy performance - directory transfers use /MT:32; individual files of at least 64 MiB also use unbuffered I/O with /J.
  • Small-file acceleration - reference data indicates roughly 438% to 766% higher effective speed, averaging about 551% (6.5x throughput and 84.6% less elapsed time) across three small-file workloads; actual results vary by system.
  • Copy and move support - clipboard cut semantics are preserved, and sources are removed only after a successful move.
  • Conflict handling - choose overwrite, skip, or cancel before a copy starts; move conflicts offer overwrite or cancel.
  • Lightweight native UI - an indeterminate waveform and elapsed time show that the operation is active without parsing unreliable pseudo-progress.
  • Silent sign-in startup - a dedicated GUI-subsystem launcher starts Roco without opening a console window and waits for Explorer interception to become ready.
  • Automatic interface language - installation detects the Windows display language; Simplified Chinese is used for Chinese systems and English is the fallback for other languages.
  • Graceful fallback - virtual Shell locations and unsupported operations continue through Explorer's native engine.
  • Clean lifecycle - one command enables Roco at sign-in, and one command removes its user-level installation and state.

Quick Start

Requirements

  • Windows 10 version 1809 or later, or Windows 11
  • x64-compatible system for the published package
  • No separate Robocopy installation is required

Install a release

Download the latest Windows package from GitHub Releases. If you use the ZIP package, extract all files into one directory and run:

.\roco.exe install --start

Keep roco.exe, roco-daemon.exe, and roco_explorer_agent.dll together while installing. Roco copies all three runtime files into its installation directory.

Roco installs to %LOCALAPPDATA%\Programs\Roco, adds that directory to the current user's PATH, starts the background daemon, and enables launch at sign-in. Open a new terminal before using roco without a path.

During installation or upgrade, Roco detects the current Windows user interface language and stores the selection in %LOCALAPPDATA%\Roco\language. CLI help, version and status output, lifecycle messages, conflict dialogs, and the activity window then use that language. Simplified Chinese and English are currently included; unsupported languages use English.

Upgrade from version 0.2.0 onward

Starting with Roco 0.2.0, upgrades use the same command as a clean installation. Download the new ZIP, extract all files into one directory, and run:

.\roco.exe install --start

There is no need to run roco stop or roco uninstall first. The installer stops the active daemon, replaces the installed executables, switches Explorer to a content-addressed Agent DLL, removes stale Agent files after they unlock, and starts the upgraded version. An older Agent that is still mapped by Explorer cannot block the update.

Commands

roco install --start  # Install and enable Roco
roco start            # Enable interception and launch at sign-in
roco status           # Show installation, daemon, and auto-start state
roco stop             # Restore the Windows copy path
roco uninstall        # Remove Roco and its user-level state

roco stop does not uninstall the program. Run roco start whenever you want to enable it again.

Explorer Integration

Entry point Roco behavior
Ctrl+V / Shift+Insert Handles file clipboard data in Explorer and on the desktop
Context-menu Paste Redirects supported filesystem transfers through the Explorer Agent
Command-bar Paste Redirects supported filesystem transfers through the Explorer Agent
Filesystem drag-and-drop Handles supported copy and move batches
Text, image, or app clipboard data Passes through unchanged
ZIP, MTP, Recycle Bin, and virtual Shell locations Falls back to Explorer

Roco only intercepts Explorer and desktop file operations. Paste behavior in terminals, editors, browsers, and other applications is not modified.

How It Works

flowchart LR
    A["Explorer action"] --> B{"File operation?"}
    B -->|"Keyboard paste"| C["Roco daemon"]
    B -->|"Menu or drag-and-drop"| D["Explorer Agent"]
    D --> C
    B -->|"Unsupported"| E["Explorer native engine"]
    C --> F["Resolve destination and conflicts"]
    F --> G["robocopy.exe"]
    G --> H["Complete or report failure"]
Loading

The daemon uses the canonical Shell clipboard formats produced by Explorer, including Preferred DropEffect, to distinguish copy from move. A companion roco_explorer_agent.dll bridges Explorer actions that do not pass through keyboard paste.

Each top-level source becomes one Robocopy invocation. Roco preserves file data, attributes, and timestamps, excludes junction traversal, and treats Robocopy exit codes 0 through 7 as successful outcomes. Failed or cancelled operations never clear a cut source.

The activity window is shown immediately when copying begins and closes as soon as the operation completes. It remains topmost for the lifetime of the task while still being draggable. The renderer uses a fixed refresh rate and double buffering to keep UI work out of the copy path.

For the complete process model and failure boundaries, see Architecture.

Build From Source

Roco targets Windows and uses the Rust 2024 edition. Building the complete workspace produces both the executable and Explorer Agent DLL.

git clone https://github.com/wenshui330/roco.git
cd roco
cargo build --workspace --release
.\target\release\roco.exe install --start

Useful development checks:

cargo fmt --check
cargo test --workspace
cargo clippy --workspace --all-targets -- -D warnings

Uninstall

roco uninstall

This stops the daemon, restores Explorer's original entry points, removes Roco from the current user's PATH and sign-in startup, deletes its log and configuration state, and schedules the installed program directory for removal.

License

Roco is available under the MIT License.

About

Accelerate Windows Explorer file transfers without changing the way you copy and paste.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages