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

tarify

v0.0.1

Published

Tar implemented in the browser

Readme

Intro

Have you ever wanted to tar something, but you didn't want to push it to your server first?

Tar-js is here to the rescue!!

With tar-js, you can construct a tar archive in the browser. This is basically a port of tar-async for Nodejs for the browser, with a couple differences.

Here's what it supports:

  • Add strings to a tar archive as files
  • Customizable uid, gid, mtime, and permissions (defaults work well though too)
  • Add files in a directory heirarchy

Dependencies

Tar needs an HTML5 compliant browser. More specifically it needs Uint8Array to work.

The examples depend on pakmanager, a package manager for the browser to make code written for node run in the browser. Install it as such:

pakmanager build

Usage Guide

The easiest way to interface with it is by using pakmanager. Include the package from pakmanager in your html, and then in you javascript:

var Tar = require('tar'),
    tape = new Tar();

Then all you got to do is call tape.append with your params and it'll be added to the archive. That's it!

Here's the api for append: append(filepath, content, [opts], [callback])

  • filepath- string path (can include directories and such)
  • content- string or Uint8Array
  • opts- options:
    • mode- permissions of resulting file (octet) [default: 777]
    • mtime- modification time in seconds (integer) [default: current time]
    • uid- user id (integer) [default: 0]
    • gid- group id (integer) [default: 0]
  • callback- callback when done (takes a Uint8Array as it's only parameter)
    • This is a reference to the tar so far
    • Copy it if you want to use it, because subsequent adds may break stuff