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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@emnudge/unicode-query

v0.0.1

Published

Unicode query engine

Readme

Unicode Query

A Unicode querying engine. Built for Unicode Lookup.

const result = simpleQuery(unicodeMappings, "pile");

console.log(result); 
/* output:
[
  {
    "codepoint": 128169,
    "label": "pile of poo",
    "category": "So",
    "combiningClass": 0,
    "bidiClass": "ON",
    "decompositionStr": null,
    "decimalEquiv": null,
    "digitEquiv": null,
    "numericEquiv": null,
    "isBidiMirrored": false,
    "oldName": null,
    "uppercaseMapping": null,
    "lowercaseMapping": null,
    "titlecaseMapping": null
  }
]
*/

Goals

This project is built for Unicode Lookup and as such has a few requirements in its development: fast to run, quick to update, and easy to search.

Fast

Interaction with the querying engine should be fast and non-blocking. Our code should execute quickly and off the main thread.

Speed is benchmarked on V8 against alternative methods. There isn't much competition and it would take years to build every possible implementation to truly know the fastest, but, at the least, the development of this library involves a bunch of quick tests when exploring routes for optimizations.

Quick To Update

We're working on a dataset that has an official repository. As new versions are released, it's important that we can update our local data quickly without much effort.

If we decide to reformat our unicode data into a format that better suites our application, a script should be included to automate the process.

Simple And Flexible

The original application was targeted towards research, but has reached audiences who need a much more casual use. We should allow for an API with simple defaults, but include mechanisms to customize behavior for more advanced needs.

This was initially exposed as a "simple search" and "advanced search" API. The former took in a string which was parsed and returned matches most approximating the search query. Advanced search takes in an array of filters to get at more specific data.