MoonHAR: a MoonBit library and CLI toolkit for parsing, validating, and analyzing HTTP Archive files.
Dependencies
moon check --deny-warn
moon test --deny-warn
moon fmt --check
moon run --target js cmd/main -- summary examples/sample.har.json# 性能摘要;添加 --json 可输出 JSON
moon run --target js cmd/main -- summary examples/sample.har.json
# 结构和语义校验;发现错误时退出码为 2
moon run --target js cmd/main -- validate examples/sample.har.json
# 完整报告;--json 适合保存或交给其他工具处理
moon run --target js cmd/main -- report examples/sample.har.json --json
# 请求瀑布表;添加 --json 可输出 JSON
moon run --target js cmd/main -- waterfall examples/sample.har.json
# 性能预算;失败时退出码为 3,可直接用于 CI 门禁
moon run --target js cmd/main -- budget examples/sample.har.json --strict
# 请求明细 CSV
moon run --target js cmd/main -- csv examples/sample.har.jsonmoon run --target js cmd/main -- --helpmoon add k5111114s/xb123///|
import {
"k5111114s/xb123" @har,
}///|
fn analyze_har_text(text : String) -> String {
match @har.parse_har(text) {
Ok(archive) => {
let diagnostics = @har.validate_archive(archive)
if diagnostics.any(item => item.severity == @har.Error) {
@har.render_diagnostics(diagnostics)
} else {
@har.render_summary(@har.analyze_archive(archive))
}
}
Err(error) => error.path + ": " + error.message
}
}| 能力 | API |
|---|---|
| 解析与校验 | parse_json、parse_har、validate_archive |
| 汇总与指标 | analyze_archive、entry_time_stats、p95_time |
| 查询与筛选 | filter_entries、select_by_status_range、select_wait_bound |
| 预算与质量 | check_budget、score_archive、generate_insights |
| 报告与导出 | render_summary、export_entries_csv、export_full_report_json |
| 隐私与对比 | redact_url、redact_pair、compare_archives |
pub(all) struct HarEntry {
started_date_time : String
time : Int
request : HarRequest
response : HarResponse
timings : HarTimings
server_ip_address : String
connection : String
pageref : String
} derive(Eq, Debug)pub(all) struct HarPage {
id : String
title : String
started_date_time : String
page_timings : HarPageTimings
} derive(Eq, Debug)pub(all) struct HarSummary {
entry_count : Int
page_count : Int
failed_count : Int
redirected_count : Int
cached_count : Int
total_bytes : Int
total_time : Int
longest_time : Int
average_time : Int
domains : Array[DomainStat]
statuses : Array[StatusStat]
resources : Array[ResourceStat]
slow_entries : Array[SlowEntry]
} derive(Eq, Debug)Install
Download zipMoonHAR: a MoonBit library and CLI toolkit for parsing, validating, and analyzing HTTP Archive files.
Dependencies