3 releases

0.0.3 Apr 7, 2024
0.0.2 Jan 21, 2024
0.0.1 Jan 17, 2024

#1634 in Encoding

38 downloads per month

Apache-2.0

19KB
379 lines

gomod-parser

Build Status Crate MSRV

A simple go.mod file parser based on winnow.

Example

use gomod_parser::{GoMod, Module, ModuleDependency};
use std::str::FromStr;

let input = r#"
module github.com/example

go 1.21

require golang.org/x/net v0.20.0
"#;

let go_mod = GoMod::from_str(input).unwrap();

assert_eq!(go_mod.module, "github.com/example".to_string());
assert_eq!(go_mod.go, Some("1.21".to_string()));
assert_eq!(
    go_mod.require,
    vec![ModuleDependency {
        module: Module {
            module_path: "golang.org/x/net".to_string(),
            version: "v0.20.0".to_string()
        },
        indirect: false
    }]
);

Dependencies

~1MB
~16K SLoC