FastDrop
Ultra-lightweight, zero-dependency file and text sharing server with a sleek modern Web UI, streaming transfers, authentication, shared clipboard, and a built-in code editor.
Why FastDrop?
Python's built-in python -m http.server is convenient, but it only supports downloading. Third-party alternatives like uploadserver add upload functionality, but:
- They lack a modern, intuitive user interface and professional vector icons.
- Naive upload handling buffers entire multi-gigabyte files into system RAM, quickly exhausting server memory and crashing processes.
- They lack crucial features like built-in authentication, quick text copy/paste sharing, file editing, directory creation, and batch actions.
FastDrop solves all of this. It is designed to be the ultimate developer utility: zero external dependencies, instant startup, constant low memory usage (< 20MB RAM) even while uploading 50GB files, vector SVG icons, and a modern responsive dashboard you actually enjoy using.
Features
- Ultra-Lightweight & Zero-Dependencies: Built entirely using Python's standard library. No bloated third-party dependencies required. Instant installation and startup.
- Constant Memory Streaming (< 20MB RAM): Both uploads and downloads stream in 64KB chunks directly to and from disk. You can upload a 100GB video without increasing RAM usage.
- Modern Responsive Web Dashboard:
- Crisp, professional SVG vector icons (no emojis, zero external icon font requests).
- Responsive layout for desktops, tablets, and smartphones.
- One-click Dark and Light theme toggle (persisted across sessions).
- List View and Grid/Card View.
- Live client-side instant search and filtering (shortcut:
/). - Real-time disk storage gauge and item statistics.
- Android & Mobile App Experience:
- Material Floating Action Button (FAB) with expandable Speed Dial menu (Upload Files, Upload Folder, New Folder, New File, Quick Text).
- Native-style Action Bottom Sheet for file actions (Download, Copy, Edit, Preview, Rename, Delete) with 48px+ thumb-friendly touch targets.
- Dynamic Android browser status bar tinting via
<meta name="theme-color">matching dark/light mode. - Mobile safe-area insets (
env(safe-area-inset-bottom)) supporting modern gesture bars and notches. - Fullscreen touch-optimized Code Editor and Quick Text clipboard modals.
- Horizontal swipeable breadcrumbs navigation.
- Quick Text & Clipboard Sharing:
- Quickly paste, share, and copy text snippets, tokens, links, or notes across devices on your local Wi-Fi without creating files.
- 1-click Copy to Device Clipboard via browser clipboard API.
- Sync text in real-time with the FastDrop server.
- Option to save shared text directly as a file into the current directory.
- 1-click Copy Content button on any text file in the file explorer.
- Seamless Uploads:
- Drag and drop files anywhere on the screen.
- Drag and drop entire directory trees (preserves folder structure).
- Multi-file picker with real-time upload progress drawer and speeds.
- Streaming raw binary upload API (
/api/upload-stream) and multipart form support.
- Flexible Authentication:
- HTTP Basic Auth (
--auth user:passwordor-u user -P pass). - Bearer Token authentication (
--token secretor--generate-token). - Write-Auth-Only Mode (
--write-auth-only): Allow anyone to browse and download files publicly, while requiring authentication to upload, edit, rename, or delete!
- HTTP Basic Auth (
- Built-in Code & Text Editor:
- View and edit
.py,.js,.json,.html,.css,.md,.txt,.sh,.yml,.env, and more directly in the browser. - Syntax gutter with line numbers.
- Tab indentation support (inserts 4 spaces instead of losing focus).
- Keyboard shortcuts:
Ctrl+S(orCmd+S) to save immediately,Escto close. - 1-click Copy All button to copy file content to clipboard.
- Unsaved changes indicator and discard prevention.
- View and edit
- File Management Controls:
- Create new folders with one click.
- Create new text/code files on the fly.
- Rename files and folders safely.
- Delete individual files or multi-select for batch deletion.
- Download entire directories as
.zipin a single click.
- Instant LAN / Network Sharing:
- Automatically discovers your local Wi-Fi / Ethernet IP address and prints clickable links in the terminal so you can immediately connect from your phone or another PC.
- Resumable Downloads & Video Streaming:
- Full support for HTTP
Rangerequests (206 Partial Content). Seek through videos or resume interrupted downloads seamlessly.
- Full support for HTTP
- Built-in Security:
- Strict path traversal mitigation (
os.path.commonpath). - Hidden dotfile filtering (
--show-hiddenflag to reveal). - Safe atomic file writes using temporary staging files.
- Optional Read-Only mode (
--readonly) and Drop-Box mode (--upload-only).
- Strict path traversal mitigation (
Installation
Install FastDrop directly from PyPI:
pip install fastdrop
Or install from source:
git clone https://github.com/fastdrop/fastdrop.git
cd fastdrop
pip install .
Quick Start
1. Launch with default settings
Serves the current directory on port 8000:
fastdrop
Terminal output:
=====================================================
FastDrop v0.1.0 - Ultra-Lightweight File & Text Server
=====================================================
-> Local: http://localhost:8000/
-> Network: http://192.168.1.105:8000/
Serving: /home/user/my-folder
Press Ctrl+C to stop the server
2. Protect with Password Authentication
fastdrop -a admin:secret123
3. Share Public Downloads, Protect Uploads
Allow anyone on your Wi-Fi to browse and download, but require password to upload, edit, or delete:
fastdrop -a admin:secret123 --write-auth-only
4. Quick Text Sharing Across Devices
- Click the Quick Text button in the top toolbar.
- Paste your snippet, token, link, or note.
- Click Save / Share — open FastDrop on your phone and tap Copy to Clipboard!
5. Serve a Specific Folder on a Custom Port
fastdrop /path/to/downloads -p 9090
6. Generate a One-Time Secure Access Token
fastdrop --generate-token
7. Read-Only Mode (Disable All Modifications)
fastdrop --readonly
8. Upload-Only Mode (Drop-Box / Submission Portal)
Users can only drop files; file listing and downloads are disabled:
fastdrop --upload-only
Command-Line Options
| Argument | Description | Default |
|---|---|---|
directory |
Directory path to serve | Current directory (.) |
-p, --port PORT |
Port to bind to | 8000 |
-b, --bind ADDR |
Network address to bind | 0.0.0.0 (all interfaces) |
-a, --auth USER:PASS |
Basic authentication credentials | None |
-u, --username USER |
Username for basic auth | None |
-P, --password PASS |
Password for basic auth | None |
-t, --token TOKEN |
Secret access token | None |
--generate-token |
Generate random 32-char token | Disabled |
--write-auth-only |
Require auth only for write operations | Disabled |
--readonly |
Disable uploads, edits, and file modifications | Disabled |
--upload-only |
Drop-box mode: enable uploads only, hide listings | Disabled |
--show-hidden |
Display hidden files and dotfiles | Disabled |
--cors |
Enable Cross-Origin Resource Sharing (CORS) | Disabled |
--max-size SIZE |
Maximum upload size limit (e.g. 500M, 2G) |
Unlimited |
--ssl-cert FILE |
Path to SSL certificate for HTTPS | None |
--ssl-key FILE |
Path to SSL private key for HTTPS | None |
-v, --version |
Display version and exit |
Command-Line Scripting & cURL
FastDrop can be used directly from scripts and terminal tools:
Upload via cURL (Streaming):
curl -T archive.tar.gz "http://localhost:8000/api/upload-stream?filename=archive.tar.gz"
Upload with Authentication:
curl -u admin:secret123 -T file.zip "http://localhost:8000/api/upload-stream?filename=file.zip"
Read Shared Clipboard Text:
curl "http://localhost:8000/api/clipboard"
Update Shared Clipboard Text:
curl -X POST -H "Content-Type: application/json" -d '{"text": "My shared text"}' "http://localhost:8000/api/clipboard"
Download a File:
curl -u admin:secret123 -O "http://localhost:8000/api/raw?path=document.pdf&download=1"
Download Entire Directory as ZIP:
curl -u admin:secret123 -o my_folder.zip "http://localhost:8000/api/zip?path=subfolder"
Running Tests
Run the test suite with Python's built-in unittest:
python -m unittest tests/test_fastdrop.py
Author
Developed by XIV4M (Shivam)
- GitHub: @XIV4M
- Repository: github.com/XIV4M/fastdrop
License
FastDrop is open-source software licensed under the MIT License © 2026 XIV4M (Shivam).
Metadata
Release files for fastdrop 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastdrop-0.1.0.tar.gz | 48.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastdrop-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.3 kB
Release files / fastdrop-0.1.0.tar.gz
| Download URL | fastdrop-0.1.0.tar.gz |
|---|---|
| Size | 48.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
74a5fc655b955fb10691d73fa03b9d52ac52238a9d8ebca61cc4023bd6a88945
|
|
BLAKE2b-256 checksum How to use checksums |
b884fe9af8a4ee602644036fcda9abcee38ce9098462e8099774ed615a4712f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|
Release files / fastdrop-0.1.0-py3-none-any.whl
| Download URL | fastdrop-0.1.0-py3-none-any.whl |
|---|---|
| Size | 43.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd82184976fa8689b34fea6b4a8d2b43500edb5c57ca6c3c64f98da3252a096e
|
|
BLAKE2b-256 checksum How to use checksums |
449f371c5efe68813679c767c8ab4d7ab84c7e462e1085ad188c839c44b88004
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.10.11
|