Local ranking and search toolkit for MoonBit packages, combining dependency, release, and download signals.
moon add Luna-Flow/mooncake-impact-factor@0.2.0import {
"Luna-Flow/mooncake-impact-factor/score",
}test "score a registry" {
// 20 dependents of other owners (4 of them recent), 3 of the same owner,
// 300 downloads, released 40 days ago; and a package without any signal.
let busy : @score.Signals = {
external_dependents: 20,
self_dependents: 3,
recent_external_dependents: 4,
recent_self_dependents: 0,
downloads: 300,
days_since_release: 40,
}
let idle : @score.Signals = {
..busy,
external_dependents: 0,
self_dependents: 0,
recent_external_dependents: 0,
downloads: 0,
}
let snapshots = @score.score_population([busy, idle][:], [Some(busy), None][:])
inspect(snapshots[0].rank_label, content="S")
inspect(snapshots[0].momentum_label, content="Stable")
inspect(snapshots[1].momentum_label, content="New")
}| Package | Purpose |
|---|---|
| score | Impact score and its breakdown, rank positions, grades, momentum labels, scored populations. |
| metrics | Registry signals: latest releases, current dependents, recent dependents, the signals of 30 days ago, and the scores of the whole registry. |
| cli | JavaScript command build-index that runs metrics on a registry file; used by the Python index builder. |
| query | Search query language: query tree, expression parser and serializer, flat parameters, labels, sort keys, paging. |
| query_sql | Compiles search requests to SQLite statements for the dynamic site. |
| static_search | Search engine of the static site: evaluation, relevance, sorting, paging. |
moon update # refresh ~/.moon/registry/index/user
python3 scripts/build_index.py --db data/mooncake.db --refresh-downloads
npm install
MOONCAKE_DB_PATH=data/mooncake.db npm run dev -- --hostname 127.0.0.1 --port 3000Install
Download zipLocal ranking and search toolkit for MoonBit packages, combining dependency, release, and download signals.