I just published file-guardian — a zero-dependency file security scanner for Node.js.
What problem does it solve?
When users upload files to your app, you have no idea what is inside. An innocent-looking image.jpg could contain:
- Malicious scripts
- Executable code disguised as media
- Suspicious patterns in file headers
Traditional solutions require ClamAV daemon (clamscan: 461K weekly downloads) or are pure Python (pompelmi: 6.9K/week). file-guardian is pure JavaScript, zero dependencies, instant.
Quick start
npm install file-guardian
const { scanFile, scanBuffer } = require("file-guardian");
// Scan a file
const result = await scanFile("./upload.zip");
console.log(result.safe); // true or false
console.log(result.threats); // array of found issues
// Use with multer (Express.js)
const { multerGuardian } = require("file-guardian/multer-guardian");
app.post("/upload", multerGuardian().single("file"), (req, res) => {
if (req.fileScan?.safe) res.send("OK");
else res.status(400).send("Threat detected");
});
What it detects
- Malicious file signatures — known dangerous patterns
- Suspicious MIME mismatches — PNG claiming to be JPEG? Flagged.
- Executable code in data files — scripts hidden where they should not be
- Abnormal file structures — truncated headers, appended data
Performance
- < 5ms for typical files (no daemon, no startup cost)
- Zero dependencies — no native modules, no external tools
- 14 passing tests (core + multer integration)
📦 npm: file-guardian
⭐ GitHub: pyfile-toolkit/file-guardian
🛍️ More tools on Gumroad
Top comments (0)