Thumbcloud
Thumbcloud is a file-sharing server to replace your USB thumbdrive
Unmaintained
I don't intend to maintain this project. It's been a couple of years and I no longer work with rust on a regular basis.
Idea and State
Sharing files via a USB thumbdrive is not optimal:
- only one user can access the content at a time
- you have to carry a physical object (which you will for sure forget when you need it the most, thanks to Murphy's law)
- USB connections are "slow"
- not all modern computers have USB type A ports
- USB drives are limited in size (often just a few GB)
Thumbcloud is my attempt to create an application to share files with friends and collegues, on the same network. Moreover, they don't need to install any additional software (all they need is a webbrowser).
Disclaimer: The software is still in early development and misses some features. Furthermore, there are few bugs and maybe even security flaws. In a nutshell, you shouldn't use the software on an untrusted network nor with sensitive data, but feel free to try it out.
Install
Just download the latest release and unpack it.
Warning: Windows and macOS might warn you because the binaries are not singed. Feel to free ignore those warnings.
Build from source
- Install rust
- Download the repository
- Unzip the compressed file and run
cargo build --release
- Run the executable
Windows PowerShell:.\target\release\thumbcloud.exe $HOME --open
Windows CMD:.\target\release\thumbcloud.exe %HOMEPATH% --open
Unix (macOS, Linux, FreeBSD):./target/release/thumbcloud $HOME --open
Usage
- Open a terminal in the directory with the executable
- Windows CMD:
.\thumbcloud.exe %HOMEPATH% --open
Windows PowerShell:.\thumbcloud.exe $HOME --open
Unix (macOS, Linux FreeBSD):./thumbcloud $HOME --open
USAGE:
thumbcloud [FLAGS] [OPTIONS] <INPUT>
FLAGS:
-h, --help Prints help information
--open Opens thumbcloud in the default webbrowser
--simple-icons Gives all files the same icons (improves performance)
-V, --version Prints version information
OPTIONS:
-a, --addr <address> Sets the IP address and port the server will launch
-n, --name <name> Sets a custom servername
ARGS:
<INPUT> Sets the path thumbcloud will share
Contributing
Check out CONTRIBUTING.md for more information.
Feature List / TODO
v0.0.1
- Viewing files in the webbrowser
v0.0.2
- Download files from the webbrowser
- "fancy" aka useable Web UI
- Show filesize
- About page
- Let the user selecte the shared folder
- Parse commandline arguments
v0.0.3
- Upload files
- Automatic local IP detection
- File icons dependent on filetype
- Template engine for HTML files
- System page
- 404 page
v0.0.4
- Use clippy to improve code quality
- Add detailed documentation
- Add contribution guidelines
v0.1.0
- Optimize for mobile devices
- GUI for server
- Add Logo
- Product Website
- Upload to crates.io
after v0.1.0
- Download folders as .zip
- Easy installer
- View file content without downloading
- File Operations
- Drag & Drop
- Copy Paste
- Move
- Delete
- Find files
- Server Settings
- Set max connections
- Restrict to only download, only view files
- Only access with password (basic auth)