Skip to content

Latest commit

Β 

History

History
72 lines (47 loc) Β· 1.59 KB

File metadata and controls

72 lines (47 loc) Β· 1.59 KB

yarn-lock-parser

ActionsStatus Crates.io Docs.rs

A fast and reliable parser for yarn.lock files written in Rust. Supports all yarn.lock versions (v1, v2, and later). Parse lock files into structured data for dependency analysis, validation, and programmatic access.

Features

  • βœ… Supports all yarn.lock versions (v1, v2, and later)
  • βœ… Fast and memory-efficient parsing using nom
  • βœ… Comprehensive error handling with thiserror
  • βœ… Zero-copy where possible
  • βœ… Pure Rust implementation

Installation

Add this to your Cargo.toml:

[dependencies]
yarn-lock-parser = "0.14"

Quick Start

use std::{error::Error, fs};
use yarn_lock_parser::parse_str;

fn main() -> Result<(), Box<dyn Error>> {
    let yarn_lock_text = fs::read_to_string("yarn.lock")?;
    let lockfile = parse_str(&yarn_lock_text)?;

    for entry in lockfile.entries {
        println!("{:?}", entry);
    }

    Ok(())
}

Documentation

API documentation is available on docs.rs

Development

Requirements

Build

cargo build

Test

cargo test

Running Tests Verbosely

cargo test -- --nocapture

License

MIT