The fileupload gunner project is actively maintained. Upcoming features as of Q4 2025 include:
You can contribute or report issues at the official GitHub repository (github.com/gunner-labs/fileupload). The community has published over 30 plugins for formats ranging from DICOM medical images to Parquet columnar data. fileupload gunner project new
mkdir fileupload-gunner && cd fileupload-gunner
npm init -y
npm install express multer helmet rate-limit file-type uuid
npm install --save-dev nodemon
Every chunk is wrapped in a TLV (Type-Length-Value) envelope containing a CRC32C checksum. If a chunk is corrupted in transit, Gunner requests only that chunk (not the whole file) using a Range request. This is a game-changer for unreliable mobile networks. The fileupload gunner project is actively maintained
Open your terminal and execute:
npx gunner-cli project new --type fileupload --name my-upload-service
Or if using the Go-based Gunner:
go run github.com/gunner-labs/fileupload@latest project new --output ./my-project
Upon success, you will see a directory structure like this: You can contribute or report issues at the
my-upload-service/
├── config/
│ ├── upload.yaml
│ └── gunner.workers.yaml
├── internal/
│ ├── handlers/
│ │ └── upload.go
│ ├── queue/
│ │ └── redis_queue.go
│ └── storage/
│ └── s3_client.go
├── scripts/
│ └── migrate.sh
└── docker-compose.yml