lqf

Crates.iolqf
lib.rslqf
version0.1.2
created_at2025-05-31 01:25:35.741083+00
updated_at2025-06-05 17:42:51.04245+00
descriptionA lightweight, easy-to-read config format with clean section syntax and simple parsing.
homepage
repositoryhttps://www.github.com/smit4k/lqf
max_upload_size
id1695901
size47,387
Saber (smit4k)

documentation

README

lqf banner

lqf ๐Ÿชถ

lqf is a lightweight configuration format featuring a clean, sectioned syntax centered around the use of the > symbol โ€” designed to be easy to read, easy to write, and dead simple to parse. The official lqf specification can be found in github.com/smit4k/lqf-spec

This Rust crate provides a parser for .lqf files using pest.rs, ready for use in config-heavy projects or DSL exploration.

What does lqf stand for? It stands for Lightweight Quick Format

You can find a full example of an lqf file in example.lqf

โœจ Features & Syntax

  • Simple syntax for sectioned key-value configuration
    • Section header: >
    • Assignment: >>
  • Supports:
    • Strings: "text"
    • Numbers: 123, 3.14
    • Booleans: true, false
    • Arrays: [1, 2, 3], ["a", "b"]
    • Null: null
    • Comments: #
  • Built with pest โ€” robust and expressive PEG-based parser

๐Ÿงช Example

Given this .lqf file:

> database
host >> "localhost"
port >> 5432

> features
enabled >> ["search", "logging", "metrics"]

You can parse it like this in Rust:

use lqf::parse_lqf;
fn main() {
    let input = r#"
        > database
        host >> "localhost"
        port >> 5432

        > features
        enabled >> ["search", "logging", "metrics"]
    "#;

    let parsed = parse_lqf(input).expect("failed to parse LQF");
    println!("{:#?}", parsed);
}

Output:

{
    "database": {
        "host": String("localhost"),
        "port": Number(5432.0),
    },
    "features": {
        "enabled": Array([
            String("search"),
            String("logging"),
            String("metrics"),
        ])
    }
}

๐Ÿ“ฆ Installation

Add this to your Cargo.toml

[dependencies]
lqf = "0.1.1"

๐Ÿค Contributing

Contributions are welcome! Feel free to open issues, submit pull requests, or discuss ideas.

Commit count: 0

cargo fmt