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

mphf

v0.1.10

Published

Hash and unhash structured model data with no collisions, duplicates or gaps using minimal perfect hash functions. Currently in alpha. Expect breaking changes for version 0. Use with caution!

Readme

MPHF - Coordinate System

Part of the Kireji Projectomnia ex una linea

MPHF (Minimal Perfect Hash Function) provides the bijective coordinate system at the heart of the Kireji Project. It guarantees that every valid state of an app or component corresponds to a unique integer coordinate, with no collisions, duplicates, or gaps. The Kireji Web Framework uses these coordinates to encode application state directly in the URL, making navigation, persistence, and cross-origin traversal deterministic and lossless.

The Kireji Project

The Kireji Project poses a question: What if we could treat every web page as a point in a unified, mathematically mapped space?

| Repo | Purpose | ---- | ------- | MPHF | Coordinate System - ★ You are hereA bijective coordinate system for hashing structured data | Kireji | Web FrameworkA reactive web framework with MPHF routing | Demo | App EcosystemAn example app ecosystem demonstrating the project

Implementation

The set of all application states S is structured as a combinatorial configuration space. This allows us to locate every configuration as a point on a discrete manifold. A minimal perfect hash function is used to define a bijection between $S$ and the integer range $[0, |S|)$.

Each domain is hashed using positional offsets defined by component subdomains with all elements indexed from $0$. For example, a point in the cartesian product space of sets A and B is assigned a hash using $\text{hash}(A=a, B=b) = a \times |B| + b$.

This generalizes recursively to arbitrary combinations of nested spaces, each component yielding a minimal perfect hash function over the set of valid configurations of its state space.

Types

Configuration spaces are assembled from components that come in three main types.

The Part type models a single state with no mutability.

const apple = new Part("apple")

console.log(apple.cardinality)
// 1n

The Match type models a choice between two or more options.

const fruit = new Match("fruit", [
 apple,
 "orange",
 "pear"
])

console.log(fruit.cardinality)
// 3n
console.log(fruit.hash("pear"))
// "2"
console.log(fruit.unhash("2"))
// "pear"

The Mix type models a set of independently mutable variables.

const snack = new Mix("snack", [
 fruit,
 new Match("drink", [
  "water",
  "milk",
  "cola"
 ])
])

console.log(snack.cardinality)
// 9n
console.log(snack.hash({ fruit: "apple", drink: "water" }))
// 6
console.log(snack.unhash("6"))
// { fruit: "apple", drink: "water" }

URL Encoding

MPHF also includes methods for encoding large integers as url-safe base64 strings:

console.log(Part.encode(12345678901234567890n))
// aJkGoPH7MHi

console.log(Part.decode('hello-world'))
// 19857872207319512397n

Tech Stack

This library is written using Vanilla JavaScript with no third-party dependencies.

Status and License

The MPHF Coordinate System is in Alpha.

The Kireji Project is in early research and development.

MPHF on npm Project Status: Alpha Commits GitHub Last Commit Copyright © 2023-2025 <a href="https://www.ejaugust.com">Eric Augustinowicz</a> Released under MIT License Sponsor this Project