Skip to main content

FluxLoad (Python Engine)

High-performance, minimalist file sharing server engineered with strict security boundaries, clean aesthetics, and dual-engine architecture (Python & Java).

Python CI License: MIT Python Version Docker Policy


Architectural Overview

FluxLoad operates across two specialized branches designed for distinct deployment needs:

Specification Python Engine (python) Java Engine (java)
Primary Framework Flask 3.0 + Werkzeug Spring Boot 3.3 (Java 17+)
Best Used For Rapid local deployment, scriptability, full-text search High-throughput enterprise workloads, strict typing
Security Layer Werkzeug secure hashing + Session auth Spring Security + BCryptPasswordEncoder
Advanced Features Whoosh indexing, SQLite/SQLAlchemy, WebSockets Multi-threaded async service, Enterprise JPA ready
Default Port 8000 (standalone) / 5000 (Docker) 8080 (standalone & Docker)
Docker Base python:3.12-slim eclipse-temurin:17-jre-alpine
UI & Theme Engine Unified File Explorer (15 Developer Themes) Unified File Explorer (15 Developer Themes)
REST API Contract Parity (/api/files, /health) Parity (/api/files, /health)

Branch Navigation

# Clone the repository
git clone https://github.com/muadzhdz/fluxload.git
cd fluxload

# Switch to the Python engine (current branch)
git checkout python

# Switch to the Java engine
git checkout java

Key Features

  • Unified File Explorer: Single-view table explorer with top navigation bar, dynamic breadcrumbs, and instant client-side file search.
  • Whole-Page Drag-and-Drop: Drop files anywhere on the browser window to trigger instant uploads.
  • Floating Upload Toast: Non-intrusive bottom-right progress monitor with real-time percentage, transfer stats, and cancel support.
  • Rigorous Path Traversal Protection: Component-based path resolution (os.path.commonpath) eliminating directory traversal and sibling directory attacks.
  • Root Directory Protection: Safeguards preventing accidental or malicious deletion of the root upload directory.
  • REST API Parity: Unified /api/files endpoints enabling any frontend, script, or mobile client to interface interchangeably with Python or Java backends.
  • 15 Built-in Developer Themes: Tokyo Night, Catppuccin (Mocha, Macchiato, Frappe, Latte), Rose Pine, Nord, Dracula, Gruvbox, and more.

Quick Start

Installation

# Clone the repository
git clone https://github.com/muadzhdz/fluxload.git
cd fluxload

# Install in editable mode
pip install -e .

Running the Server

# 1. Simple file server
fluxload-simple -d /path/to/share -p 8000

# Or via Python module directly:
python -m fluxload -d /path/to/share -p 8000

# Run with password protection
python -m fluxload -d /path/to/share --password mysecret

# 2. Enterprise server (Database, Whoosh search, WebSocket)
python -m fluxload.advanced_main -d /path/to/share

CLI Arguments

Flag Description Default
-d, --directory Root directory path to serve and receive uploads Current working directory
-p, --port HTTP server port 8000
-b, --bind Network interface address to bind to 0.0.0.0 (all interfaces)
--password Enable authentication with specified password Disabled
-o, --open Open default web browser upon launch Disabled
--version Show program version and exit -
-h, --help Display command-line options -

Docker Deployment

# Build the container
make docker-build

# Run the container
make docker-run

Or using standard Docker CLI:

docker build -t fluxload:python .
docker run -d -p 5000:5000 -v /my/files:/data fluxload:python

REST API Contract

Method Endpoint Description Response Format
GET /health Server health and version status JSON (status, version)
GET /api/files?path= List directory items, sizes, and timestamps JSON (current_path, items)
POST /api/files/upload Multipart file upload JSON (success, filename)
POST /api/files/mkdir Create subfolder JSON (success, dirName)
POST /api/files/rename Rename file or folder JSON (success, newName)
DELETE /api/files Delete file JSON (success, filename)

Developer Workflow

# Display help and available tasks
make help

# Run test suite with coverage
make test

# Build and run Docker container
make docker-build
make docker-run

# Clean build artifacts
make clean

Zero-Emoji & Clean Design Policy

FluxLoad enforces a strict Zero-Emoji policy across all branches. User interfaces utilize Google Material Icons exclusively, and terminal outputs rely on clean, deterministic ASCII tags ([*], [+], [!], [ERROR]). Automated CI pipelines verify zero emoji violations on every commit and pull request.


Contributing

  1. Review the engineering standards outlined in the Pull Request Template.
  2. Ensure all unit tests pass (make test).
  3. Ensure zero emoji characters exist anywhere in code, markdown, or commits.
  4. Submit PR targeting either python or java branch.

License

This project is licensed under the MIT License. See LICENSE for details.

Metadata

Release files for fluxload 2.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fluxload 2.0.0
File Size Uploaded
fluxload-2.0.0.tar.gz 63.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fluxload 2.0.0
File Interpreter ABI Platform
fluxload-2.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 135.0 kB

Release files / fluxload-2.0.0.tar.gz

Download URL fluxload-2.0.0.tar.gz
Size 63.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9c0c1c9acd13ce2a9bba2320ed46822811ca1c2befad178267d653cc225cb3a7
BLAKE2b-256 checksum
How to use checksums
183594535f293be202b3d6d85b2f8e58d20c6f1c7cba60b72427dffd9b08b696
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / fluxload-2.0.0-py3-none-any.whl

Download URL fluxload-2.0.0-py3-none-any.whl
Size 71.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9177dd080fab0ea0d0a6af213afd655d202f17375e0c0113cf067faf46194357
BLAKE2b-256 checksum
How to use checksums
6247970a2f4b71156e7e837ee0adbcc15f1102012588136b6dfa6e9ed3aaa7f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.2.9

2 release files

1.2.8

2 release files

1.2.7

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page