Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. JavaScript
  3. Pompelmi

Pompelmi

ISCJavaScriptv1.20.0

Route-level file upload security for Node.js, scanning files for malware, spoofing, and risky archives before storage.

Visit WebsiteGitHubGitHub
680 stars32 forks0 contributors

What is Pompelmi?

Pompelmi is an open-source file upload security scanner for Node.js applications. It inspects untrusted uploads at the route level before storage to detect malware, MIME and extension spoofing, risky archive structures, and suspicious document signals. It helps developers secure public or semi-trusted upload endpoints by providing clear verdicts that inform storage decisions.

Target Audience

Node.js developers building applications with file upload features, especially those using frameworks like Express, Next.js, NestJS, Fastify, or Koa, and teams needing to implement inspect-first security for public-facing endpoints or CI/CD artifact scanning.

Value Proposition

Developers choose Pompelmi because it integrates directly into their application routes, providing context-aware security scanning before files hit storage. Unlike simple file-type checks or standalone antivirus, it combines spoofing detection, structural analysis, and optional YARA matching with framework-specific middleware for seamless adoption.

Overview

ClamAV antivirus scanning for Node.js — scan file uploads with a single function call. Zero dependencies. Typed Symbol verdicts. Local or Docker/clamd.

Use Cases

Best For

  • Securing public file upload endpoints in Node.js web applications
  • Implementing quarantine and promotion workflows for S3 or object storage
  • Adding malware scanning to CI/CD pipelines for build artifacts
  • Preventing archive-based attacks like ZIP bombs and path traversal in uploaded files
  • Validating file types and detecting MIME/extension spoofing in user uploads
  • Integrating YARA rule matching into a Node.js application security layer

Not Ideal For

  • Applications that process file uploads asynchronously or in batch jobs after files are already stored, as Pompelmi is designed for immediate, pre-storage inspection at the route level.
  • Teams using non-Node.js backend frameworks like Django, Spring Boot, or Rails, since Pompelmi is exclusively built for Node.js and its ecosystems.
  • High-volume file upload services where in-memory scanning of every file would introduce unacceptable latency or memory overhead, especially for large files.
  • Projects that require deep, real-time antivirus signature matching as their primary defense, as Pompelmi is not a full antivirus replacement and relies on optional YARA integration for such checks.

Pros & Cons

Pros

Multi-Layer Spoofing Defense

Validates files by comparing magic bytes, client-reported MIME types, and extensions against allowlists, effectively preventing common spoofing attacks as highlighted in the key features.

Advanced Archive Security

Detects complex threats like ZIP bombs, path traversal, and entry-count abuse in archives, which are often missed by basic file-type checks, reducing risk from malicious uploads.

Framework-Native Integration

Provides dedicated middleware and documentation for Express, Next.js, NestJS, and other popular Node.js frameworks, making it easy to drop into existing applications with minimal setup.

Flexible Verdict System

Returns clear classifications (clean, suspicious, malicious) that enable applications to implement reject, quarantine, or promote workflows seamlessly, supporting context-aware security decisions.

Cons

Node.js Exclusive

Only supports Node.js environments, limiting its use in polyglot or non-JavaScript backend stacks without complex workarounds, as evident from the framework integrations listed.

Memory-Intensive Scanning

Requires full file buffering in memory for analysis, which can be resource-heavy for large files or high-concurrency scenarios, potentially impacting server performance.

Configuration Complexity

Demands careful tuning of security policies (e.g., STRICT_PUBLIC_UPLOAD) and YARA rules, which may be daunting for teams without dedicated security expertise to avoid false positives or gaps.

Frequently Asked Questions

Quick Stats

Stars680
Forks32
Contributors0
Open Issues4
Last commit5 months ago
CreatedSince 2025

Tags

#upload-file#npm#nextjs#malware-detection#clamav#koa#docker-compose#security#virus#fastify#nodejs#typescript#file-upload#malware#application-security#cross-platform#cybersecurity#express#express-middleware#antivirus#ci-cd-security

Built With

T
TypeScript
N
Node.js

Links & Resources

Website

Included in

JavaScript34.9kSecurity14.2k
Auto-fetched 1 day ago

Related Projects

DOMPurifyDOMPurify

DOMPurify - a DOM-only, super-fast, uber-tolerant XSS sanitizer for HTML, MathML and SVG. DOMPurify works with a secure default, but offers a lot of configurability and hooks. Demo:

Stars17,477
Forks873
Last commit6 days ago
CheckovCheckov

Prevent cloud misconfigurations and find vulnerabilities during build-time in infrastructure as code, container images and open source packages with Checkov by Bridgecrew.

Stars9,090
Forks1,445
Last commit2 days ago
TFSecTFSec

Tfsec is now part of Trivy

Stars7,056
Forks560
Last commit7 months ago
js-xssjs-xss

Sanitize untrusted HTML (to prevent XSS) with a configuration specified by a Whitelist

Stars5,308
Forks634
Last commit3 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub