jsonfix 0.2.0

Repair, extract, and partially parse malformed JSON from LLMs and other unreliable sources. no_std, zero dependencies, lossless numbers.
Documentation
[package]
name = "jsonfix"
version = "0.2.0"
edition = "2024"
rust-version = "1.85"
license = "MIT OR Apache-2.0"
description = "Repair, extract, and partially parse malformed JSON from LLMs and other unreliable sources. no_std, zero dependencies, lossless numbers."
repository = "https://github.com/themankindproject/jsonfix"
authors = ["Ashutosh Kumar <kumarashutosh34169@gmail.com>"]
keywords = ["json", "repair", "llm", "streaming", "no-std"]
categories = ["parsing", "no-std", "development-tools"]
# Allowlist of what ships to crates.io: the library source, the manifest,
# the README (crate page), and the licenses. Tests, examples, benches, fuzz,
# CI, and tooling config never reach dependents. (Cargo adds its own
# generated `Cargo.toml.orig`, `.cargo_vcs_info.json`, and `Cargo.lock`.)
include = ["/src/**/*.rs", "/Cargo.toml", "/README.md", "/LICENSE-MIT", "/LICENSE-APACHE"]

[workspace]
members = ["benchmarks"]
# Plain `cargo test`/`clippy` at the root builds only the library package —
# criterion (used solely by benches) lives in the benchmarks member.
default-members = ["."]

[features]
default = []
std = []
serde = ["dep:serde"]
serde_json = ["dep:serde_json", "serde"]

[dependencies]
# Floors are the oldest releases verified to build this crate
# (`cargo update -Z direct-minimal-versions`): serde_json gained its `alloc`
# feature in 1.0.45, and older serde releases do not compile against it.
serde = { version = "1.0.100", default-features = false, features = ["alloc"], optional = true }
serde_json = { version = "1.0.45", default-features = false, features = ["alloc"], optional = true }

[dev-dependencies]
proptest = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

# `thin` links our own benches/examples in seconds instead of the ~40s that
# `fat` costs; dependents build the library with *their* profile anyway.
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"