libcorn 0.10.1

Parsing engine for Corn, a simple and pain-free configuration language.
Documentation
[workspace]
members = ["cli"]

[package]
name = "libcorn"
version = "0.10.1"
edition = "2021"
license = "MIT"
description = "Parsing engine for Corn, a simple and pain-free configuration language."
repository = "https://github.com/JakeStanger/corn"
categories = ["config", "parsing"]
keywords = ["configuration", "language", "wasm", "pest", "peg"]
authors = ["Jake Stanger <mail@jakestanger.com>"]
homepage = "https://cornlang.dev/"
documentation = "https://docs.rs/libcorn"
readme = "README.md"

[features]
# WASM support
wasm = [
    "dep:wasm-bindgen",
    "dep:serde-wasm-bindgen",
    "dep:console_error_panic_hook",
    "dep:wee_alloc",
]

# Lua version support
lua51 = ["dep:mlua", "mlua/lua51"]
lua52 = ["dep:mlua", "mlua/lua52"]
lua53 = ["dep:mlua", "mlua/lua53"]
lua54 = ["dep:mlua", "mlua/lua54"]
luajit = ["dep:mlua", "mlua/luajit"]
luajit52 = ["dep:mlua", "mlua/luajit52"]

# Internal features
bench = ["dep:criterion"]

[lib]
name = "corn"
crate-type = ["cdylib", "rlib"]

[dependencies]
# Core
pest = "2.7.15"
pest_derive = "2.7.15"
serde = { version = "1.0.218", features = ["derive"] }
indexmap = { version = "2.7.1", features = ["serde"] }

# Error handling
thiserror = "2.0.12"

# WASM support (optional)
wasm-bindgen = { version = "0.2.100", optional = true }
serde-wasm-bindgen = { version = "0.6.5", optional = true }
console_error_panic_hook = { version = "0.1.7", optional = true }
wee_alloc = { version = "0.4.5", optional = true }

# Lua support (optional)
mlua = { version = "0.11.5", features = [
    "module",
    "macros",
    "serialize",
], optional = true }

# Benchmarking (optional)
criterion = { version = "0.8.1", features = ["html_reports"], optional = true }

[dev-dependencies]
paste = "1.0.15"
wasm-bindgen-test = { version = "0.3.50" }
serde_json = "1.0.140"
serde_norway = "0.9.42"
serde_bytes = "0.11.16"
toml_edit = { version = "0.24.0", features = ["serde"] }

[profile.release]
lto = true
codegen-units = 1
strip = true

[[bench]]
name = "serde"
harness = false
required-features = ["bench"]