What is FileRipper?
FileRipper is an open-source library that accelerates file downloads and uploads using the SFTP protocol. It’s written in Go.
While FileRipper is still in an experimental phase, it already significantly increases upload/download speeds. Official comparisons haven’t been published yet, but it’s much faster.
The FileRipper code is licensed under the Mozilla Public License 2.0 (MPL-2.0).
Important
FileRipper is still an experimental library. This means that, while it may work correctly in some cases, it may also experience errors, data loss, or other issues (although it is quite stable). It is still under development, so you should be prepared to encounter some problems.
One of these is the current inability to create folders. In other w…
What is FileRipper?
FileRipper is an open-source library that accelerates file downloads and uploads using the SFTP protocol. It’s written in Go.
While FileRipper is still in an experimental phase, it already significantly increases upload/download speeds. Official comparisons haven’t been published yet, but it’s much faster.
The FileRipper code is licensed under the Mozilla Public License 2.0 (MPL-2.0).
Important
FileRipper is still an experimental library. This means that, while it may work correctly in some cases, it may also experience errors, data loss, or other issues (although it is quite stable). It is still under development, so you should be prepared to encounter some problems.
One of these is the current inability to create folders. In other words, when uploading a file or folder containing multiple subfolders, the CLI will not create them. This is because this feature has not yet been implemented, but it is a priority for future versions.
Building FileRipper
To compile the library, it is strongly recommended to use the Go version specified in the requirements.
Other versions are not verified for use.
Prerequisites
Make sure you have the following tools installed on your operating system:
Git: For version control.
Go (1.25.0): To compile the core. Download Go.
Compiling the Library
The main library is an executable that acts as a server or a CLI.
Go to the project root (where go.mod is located).
1.
Install the necessary dependencies:
go mod tidy
- Compile the production binary. We use flags to remove debug symbols and minimize the space used (this is for final versions).
go build -ldflags "-s -w" -o fileripper.exe ./cmd/fileripper
Result: If everything went well, you should see fileripper.exe (or the binary for your system) in your root directory. (It is recommended to compile for Windows at this time.)
To use the program via the terminal:
Syntax
./fileripper.exe transfer <host> <port> <user> <password> <operation_flag> [target]
Parameters (required)
<host>: The IP address or hostname of the remote server.
<port>: The remote SSH port.
<user>: The remote SSH username.
<password>: The user’s password.
Operation flags (required)
The command requires one of the following flags to define the transfer direction:
--upload <local_folder_path>: Recursively scans the local folder and uploads all contents to the remote root directory. This enables Boost mode (64 workers).
--download: Downloads all files from the remote root directory. (/) to a local dump folder/. Enables Boost mode (64 workers).
Feature Support and Roadmap
| Feature | Status | Notes |
|---|---|---|
| File Upload | Boost mode active (64 workers). | |
| File Download | Downloads to the local /dump folder. | |
| SFTP Protocol | Go-based implementation. | |
| Transfer Stability | Experimental (Risk of data loss). | |
| Directory Creation | Not implemented (Coming soon). | |
| SSH Keys (Key Authentication) | Password authentication only. | |
| OS Compatibility | Primarily optimized for Windows. |