#go-mod #parser

gomod-parser2

Simple go.mod parser

3 releases

0.4.2 Sep 24, 2025
0.4.1 Jul 17, 2025
0.4.0 Jun 23, 2025

#2505 in Encoding

Apache-2.0

21KB
439 lines

This is a temporary fork! Use the official https://docs.rs/gomod-parser/latest/gomod_parser/ instead.

gomod-parser

Build Status Coverage 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
~25K SLoC