[package]
name = "bufjson"
version = "1.1.0"
edition = "2024"
license = "MIT OR Apache-2.0"
authors = ["Victor Schappert <victor.schappert@protonmail.com>"]
repository = "https://github.com/vcschapp/bufjson"
documentation = "https://docs.rs/bufjson"
homepage = "https://github.com/vcschapp/bufjson"
description = "Fast streaming JSON parser and lexer | Read JSON without allocating or copying."
keywords = ["json", "parser", "streaming", "performance", "no-std"]
categories = ["parser-implementations", "encoding", "network-programming", "no-std", "web-programming"]

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

[profile.profiling]
inherits = "release"
debug = true

[features]
default = ["std"]
ignore_case = ["dep:caseless"]
num = []
num_ext = ["num"]
pipe = ["dep:bytes", "dep:smallvec"]
pointer = ["dep:smallvec"]
read = []
std = ["bytes?/std"]

[dependencies]
bitvec = { version = "^1.0.1", default-features = false, features = ["alloc"] }
bytes = { version = "^1.11.1", default-features = false, optional = true }
caseless = { version = "^0.2.2", optional = true }
smallvec = { version = "^1.15.1", optional = true }

[dev-dependencies]
criterion = "0.5"
doc-comment = "^0.3.3"
json-streaming = { version = "^1.0.3", features = ["tokio"] }
rand = "^0.10.0"
rand_distr = "^0.6.0"
rstest = "^0.26.1"
serde_json = "^1.0.49"
simd-json = "^0.17.0"
smallvec = "^1.15.1"
struson = "^0.7.2"
tempfile = "^3.25.0"
tokio = { version = "^1.50.0", features = ["macros", "rt", "sync"] }

[dev-dependencies.bufjson]
path = "."
features = ["pointer", "pipe", "read"]

[[bench]]
name = "throughput"
harness = false
