___ ___ ___ ________ ________ ___ ___ _________ _______
|\ \|\ \ |\ \|\ ____\|\ __ \|\ \ |\ \|\___ ___\/ ___ \
\ \ \\\ \ \ \ \ \ \___|\ \ \|\ \ \ \ \ \ \|___ \ \_/__/|_/ /|
\ \ __ \ __ \ \ \ \_____ \ \ ____\ \ \ \ \ \ \ \ \|__|// / /
\ \ \ \ \|\ \\_\ \|____|\ \ \ \___|\ \ \____\ \ \ \ \ \ / /_/__
\ \__\ \__\ \________\____\_\ \ \__\ \ \_______\ \__\ \ \__\ |\________\
\|__|\|__|\|________|\_________\|__| \|_______|\|__| \|__| \|_______|
\|_________|
A spiritual successor to HJSplit
Fast, cross-platform file splitting and joining tool
hjsplit2 is a modern, open-source replacement for the classic HJSplit utility. It lets you split large files into smaller chunks and rejoin them later — perfect for transferring big files over email, USB drives, or cloud storage with size limits.
Built with Go and the Fyne GUI toolkit, featuring a dark navy/synthwave theme inspired by classic terminal aesthetics.
- ✂️ Split — divide any file into custom-sized parts (
.001,.002, ...) - 🔗 Join — merge split files back to the original
- 🔀 Custom Join — join multiple files in any order via drag-and-drop list
- 🖱️ Drag & Drop — drop files directly onto the window
- 🎨 Synthwave Theme — dark navy, hot pink, and teal aesthetics
- 🖥️ Console Log — real-time operation log with terminal-style output
- 📦 Portable — single executable, no installation required
- 🌍 Cross-platform — Windows, Linux, macOS
Pre-built binaries for Windows (32-bit and 64-bit) and Linux are available in the dist directory after building.
| Platform | File |
|---|---|
| Windows 64-bit | hjsplit2-v*-windows-amd64.exe |
| Windows 32-bit | hjsplit2-v*-windows-386.exe |
| Linux 64-bit | hjsplit2-v*-linux-amd64 |
go build -ldflags="-s -w -H windowsgui" -o hjsplit2.exe .# Windows — build all platforms
.\build.ps1 all
# Build only for current platform
.\build.ps1 native
# Build specific targets
.\build.ps1 win64
.\build.ps1 win32 # requires MINGW32_PATH in build.conf
.\build.ps1 linux # requires WSL with Go installed# Linux / WSL
./build.sh all
./build.sh native
./build.sh win64 # requires MinGW cross-compilerThe build scripts automatically detect available toolchains:
- win64: uses system MinGW-w64 (64-bit)
- win32: configure
MINGW32_PATHorCC_386inbuild.conf - Linux (from Windows): builds via WSL if Go is installed in WSL
- Linux (native): builds directly
Configure paths in build.conf (copy from build.conf.example):
MINGW32_PATH=C:/Apps/mingw32
WSL_DISTRO=Ubuntu
USE_UPX=true- Go to the Split tab
- Drag a file onto the window (or click to browse)
- Set the chunk size (KB, MB, or GB)
- Click Split
- Go to the Join tab
- Drag a
.001file onto the window - Click Join — automatically finds and merges
.001,.002, ...
- Go to the Join tab
- Click Custom Join...
- Add files with Add files..., reorder with ↑ / ↓
- Set the output path and click START JOIN
Output files from Split follow the .001, .002, ... naming convention, compatible with the original HJSplit format.
- Language: Go
- GUI: Fyne v2
- Theme: Custom Synthwave (Python‑inspired palette)
- Windowing: GLFW via Fyne
- Original concept: HJSplit
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.