npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

infyn

v1.0.0

Published

Fast, 100% free, client-side in-browser PDF and image processing utilities.

Readme

∞ Infyn

Fast, 100% free, and private in-browser utilities — zero server uploads.

Infyn is a modern, open-source web utility suite offering essential image and PDF tools that execute entirely in the user's browser. No subscriptions, no credit cards, no tracking ads, and your files never touch a remote server.

License: MIT Contributions Welcome Next.js TypeScript


⚡ Core Philosophy

  • 🔒 100% Client-Side Privacy (Zero Cloud Uploads): All image manipulation, AI segmentation, encryption/decryption, and PDF rendering run locally on your device via WebAssembly (WASM), Web Workers, and HTML5 Canvas.
  • 🚫 100% Free & Ad-Free: No paywalls, no watermark additions on exports, no subscriptions, and no intrusive ads.
  • 📦 Batch-First: Designed to handle multiple files in bulk with instant 1-click ZIP downloads.
  • 🚀 Zero Friction: No login or signup required. Just open and use.

🛠️ Tools & Capabilities

📄 PDF Suite

  • PDF Merger: Combine multiple PDFs into a single document with visual drag-and-drop reordering.
  • PDF Splitter & Page Extractor: Visual page grid to extract specific pages into a new PDF or split into individual PDFs (ZIP download).
  • PDF Password Protector: Secure confidential PDFs with standard AES-256 password encryption in browser.
  • PDF Unlocker: Remove passwords and access restrictions from encrypted PDF documents safely.
  • PDF to Image: Render and export all or selected pages into high-resolution JPG/PNG images.
  • Image to PDF: Convert and combine images into clean, formatted PDF documents with custom margins and page sizes.

🖼️ Image Suite


📦 NPM Package (infyn)

You can install Infyn directly into your React, Next.js, Vue, Vite, or Node web project to process PDFs and images locally with zero cloud API keys:

npm install infyn
# or
pnpm add infyn
# or
yarn add infyn

1. All-in-One Import

import { 
  mergePDFs, 
  splitPDF, 
  encryptPDF, 
  decryptPDF, 
  compressImage, 
  removeExif, 
  convertHeicToJpg 
} from "infyn";

2. Subpath Imports (Optimized for Tree-Shaking)

If you only need a specific domain, import directly from the subpath to keep your bundle minimal:

📄 PDF Utilities (infyn/pdf)

import { mergePDFs, extractPDFPages, splitPDF, encryptPDF, decryptPDF, isPDFEncrypted } from "infyn/pdf";

// Merge multiple PDF files into 1 document
const mergedBytes = await mergePDFs([file1, file2]);
const mergedBlob = new Blob([mergedBytes], { type: "application/pdf" });

// Extract specific pages (1-indexed: pages 1, 3, and 5)
const extractedBytes = await extractPDFPages(myPdfFile, [1, 3, 5]);

// Password-protect a PDF
const protectedBytes = await encryptPDF(myPdfFile, "mySecretPassword123");

// Unlock an encrypted PDF
const decryptedBytes = await decryptPDF(encryptedFile, "mySecretPassword123");

🖼️ Image Utilities (infyn/image)

import { compressImage, convertImage, convertHeicToJpg, removeExif } from "infyn/image";

// Compress an image with dimension & quality constraints
const result = await compressImage(photoFile, {
  quality: 0.75,
  maxWidth: 1920
});
console.log(`Compressed from ${result.originalSize} to ${result.compressedSize} bytes (Saved ${result.savedPercentage}%)`);

// Strip EXIF / GPS metadata
const cleanImageBlob = await removeExif(photoFile);

// Convert Apple HEIC to standard JPEG
const jpegBlob = await convertHeicToJpg(heicFile);

// Convert between formats (PNG -> WebP)
const webpBlob = await convertImage(pngFile, "image/webp", 0.85);

🏗️ Tech Stack


🚀 Getting Started (Local Development)

Prerequisites

  • Node.js (v18.18 or higher recommended)
  • npm, pnpm, or yarn

Installation

  1. Clone the repository:

    git clone https://github.com/imvicky69/infyn.git
    cd infyn
  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev
  4. Open http://localhost:3000 in your browser.


🤝 Contributing & Submitting Features

Contributions from the open-source community are always welcome! Whether you are resolving issues, adding new client-side tools, or enhancing documentation:

  1. Check existing issues or open a Feature Request / Bug Report.
  2. Review our Contributing Guide and Code of Conduct.
  3. Create a feature branch, commit your changes, and open a Pull Request.

🛡️ Security & Privacy

Infyn processes all user data locally on the client machine. If you discover a security flaw or potential data leakage, please review our Security Policy for reporting guidelines.


📄 License

This project is open source and available under the MIT License.