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

@squawk/icao-registry

v0.5.7

Published

FAA ICAO hex address to aircraft registration and info lookup

Readme

MIT License npm TypeScript

Resolves a 24-bit ICAO hex address to its aircraft registration and info. Pure logic library - contains no bundled data. Accepts an array of AircraftRegistration records at initialization. For zero-config use, pair with @squawk/icao-registry-data. Includes FAA ReleasableAircraft ZIP parsing utilities for consumers who want to fetch their own fresh data.

Documentation

Part of the @squawk aviation library suite. See all packages on npm.

Installation

npm install @squawk/icao-registry

Usage

With bundled data (zero-config)

npm install @squawk/icao-registry-data
import { usBundledRegistry } from '@squawk/icao-registry-data';
import { createIcaoRegistry } from '@squawk/icao-registry';

const registry = createIcaoRegistry({ data: usBundledRegistry.records });
const aircraft = registry.lookup('A004B3');

With fresh FAA data

import { createIcaoRegistry, parseFaaRegistryZip } from '@squawk/icao-registry';

const zipBuffer = await fetch('https://registry.faa.gov/database/ReleasableAircraft.zip').then(
  (r) => r.arrayBuffer(),
);
const data = parseFaaRegistryZip(Buffer.from(zipBuffer));
const registry = createIcaoRegistry({ data });

With custom data

import { createIcaoRegistry } from '@squawk/icao-registry';

const registry = createIcaoRegistry({
  data: [{ icaoHex: 'A00001', registration: 'N12345', make: 'CESSNA', model: '172S' }],
});

Browser / SPA usage

For SPAs and edge runtimes, import from the /browser subpath. It re-exports createIcaoRegistry and the shared types but omits parseFaaRegistryZip, which depends on Node's Buffer and the adm-zip package and is unsuitable for browser bundles. Pair it with @squawk/icao-registry-data/browser:

import { loadUsBundledRegistry } from '@squawk/icao-registry-data/browser';
import { createIcaoRegistry } from '@squawk/icao-registry/browser';

const dataset = await loadUsBundledRegistry();
const registry = createIcaoRegistry({ data: dataset.records });

Browser consumers that need fresh FAA data should fetch and parse the ZIP server-side (where parseFaaRegistryZip is available) and feed the resulting records into the browser via their own API.

API

  • createIcaoRegistry({ data }) - builds a registry from an array of AircraftRegistration records.
  • registry.lookup(icaoHex) - resolves a 24-bit ICAO hex address to a record, or undefined.
  • registry.recordCount - total number of records in the loaded dataset.
  • parseFaaRegistryZip(buffer) - parses a downloaded FAA ReleasableAircraft.zip into the AircraftRegistration[] shape that createIcaoRegistry expects. Node-only; not exported from the /browser entry.

Under active development. See the docs for current API status.