#ocaml #parser #file-format #opam

opam-file-rs

Parser and printer for the opam file syntax with Rust

4 releases

0.1.5 Jun 3, 2021
0.1.4 Jun 3, 2021
0.1.2 Feb 15, 2021
0.1.1 Feb 15, 2021

#1705 in Parser implementations

Download history 412/week @ 2024-07-21 731/week @ 2024-07-28 350/week @ 2024-08-04 953/week @ 2024-08-11 562/week @ 2024-08-18 843/week @ 2024-08-25 1329/week @ 2024-09-01 1336/week @ 2024-09-08 495/week @ 2024-09-15 1166/week @ 2024-09-22 857/week @ 2024-09-29 493/week @ 2024-10-06 530/week @ 2024-10-13 227/week @ 2024-10-20 263/week @ 2024-10-27 385/week @ 2024-11-03

1,435 downloads per month
Used in upstream-ontologist

MIT license

35KB
995 lines

opam-file-rs: Parser and printer for the opam file syntax with Rust

crates.io docs.rs Build Status source badge license badge

Parsing OPAM

Parse OPAM file.

use opam_file_rs;
fn main () {
  let opam = r#"
    opam-version: "2.0"
    version: "0.1.0"
    name: "opam-file-rs"
    dev-repo: "git+https://github.com/puripuri2100/opam-file-rs"
    license: "MIT"
    maintainer: "Naoki Kaneko <puripuri2100@gmail.com>"
    depends: [
      "lalrpop-util" {>= "0.19.4"}
      "thiserror" {>= "1.0.23"}
    ]
  "#;
  assert!(opam_file_rs::parse(opam).is_ok());
}

Convert to a OPAM file format.

A data structure can be converted to an OPAM file format by value::format_opam_file.

use opam_file_rs;
fn main() {
  let opam_str = r#"
    opam-version: "2.0"
    version: "0.1.0"
    name: "opam-file-rs"
    dev-repo: "git+https://github.com/puripuri2100/opam-file-rs"
    license: "MIT"
    maintainer: "Naoki Kaneko <puripuri2100@gmail.com>"
    depends: [
      "lalrpop-util" {>= "0.19.4"}
      "thiserror" {>= "1.0.23"}
    ]
  "#;
  let opam = opam_file_rs::parse(opam_str).unwrap();
  println!("{}", opam_file_rs::value::format_opam_file(opam));
}

(c) 2021 Naoki Kaneko (a.k.a. "puripuri2100")

Dependencies

~0.3–2.4MB
~41K SLoC