mooncake_impact_factor

mooncake_impact_factor ranks the packages of the MoonBit registry by how much the ecosystem relies on them. It scores every package from its dependents, recent dependents, downloads and release date, labels the score with a rank and a momentum class, and lets you search and filter the result in a web application that runs locally against SQLite or as a static site.

This manual describes version 0.1.2 of the module Luna-Flow/mooncake-impact-factor.

Packages

The MoonBit module has three packages. Each has an API reference, a tutorial and a design note.

PackagePurposePages
scoreThe impact score, rank labels, momentum labels and score snapshots.API · tutorial · design
cliA JavaScript command that computes a score snapshot from a JSON file, used by the Python index builder.API · tutorial · design
static_searchThe version tag and text normalisation of the browser search in static mode.API · tutorial · design

The rest of the repository is not MoonBit: the Python index builder and static exporter in scripts/, and the Next.js application in app/, frontend/src/ and lib/. The architecture guide shows how they fit together.

Guides

  • Getting started: build the database, run the web application and query its HTTP API.
  • Architecture: the data pipeline from the registry to the browser, and which file owns which rule.
  • Conventions: the documentation rules specific to this repository.

Reading paths

I want to see the rankings. Follow getting started to build the database and open the web application, then read the score tutorial to understand what the numbers mean.

I want to use the score in MoonBit. Start with the score tutorial and keep the score API at hand. Use the cli tutorial when the caller is not MoonBit.

I want to change the model or the search. Read the score design for the derivation of the formula and its invariants, the static_search design for the browser index and its ranking, and the architecture guide for how the signals are counted. The repository’s CONTRIBUTING.md lists the checks to run.

Install

moon add Luna-Flow/mooncake-impact-factor@0.1.2

Then import the package you need in moon.pkg, for example "Luna-Flow/mooncake-impact-factor/score". score builds for every target; cli and static_search build only for the JavaScript target.

Toolchain

  • MoonBit with moonc 0.10 or later. The module uses the moon.mod and moon.pkg manifest formats.
  • Node.js 20.16, 22.3 or later to run cli and the web application.
  • Python 3 for the index builder and the static exporter.

Scope

The rankings come from a local copy of the registry index plus optional download counts from mooncakes.io. They are not an authoritative ranking of the MoonBit ecosystem, and they change whenever the database is rebuilt from a newer snapshot.