[package]
edition = "2024"
rust-version = "1.85.0"
name = "noyalib"
version = "0.0.5"
authors = ["Sebastien Rousseau <sebastian.rousseau@gmail.com>"]
build = "build.rs"
include = [
"/benches/**",
"/build.rs",
"/Cargo.toml",
"/examples/**",
"/LICENSE-APACHE",
"/LICENSE-MIT",
"/README.md",
"/src/**",
"/tests/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A pure Rust YAML library with zero unsafe code and full serde integration"
homepage = "https://github.com/sebastienrousseau/noyalib"
documentation = "https://docs.rs/noyalib"
readme = "README.md"
keywords = [
"yaml",
"serde",
"serialization",
"parser",
"safe",
]
categories = [
"encoding",
"parser-implementations",
"config",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/sebastienrousseau/noyalib"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[package.metadata.clippy]
warn-lints = [
"clippy::all",
"clippy::pedantic",
"clippy::cargo",
"clippy::nursery",
]
[features]
ariadne = ["dep:ariadne"]
compare-saphyr = ["dep:serde-saphyr"]
compat-serde-yaml = []
default = [
"std",
"fast-int",
"fast-float",
"strict-deserialise",
]
fast-float = ["dep:ryu"]
fast-int = ["dep:itoa"]
figment = [
"dep:figment",
"std",
]
garde = ["dep:garde"]
include = []
include_fs = [
"include",
"std",
]
miette = ["dep:miette"]
minimal = ["std"]
nightly-simd = ["simd"]
noyavalidate = [
"std",
"miette",
"miette/fancy",
"validate-schema",
]
parallel = [
"dep:rayon",
"std",
]
robotics = []
schema = [
"dep:schemars",
"dep:serde_json",
]
simd = []
std = ["serde/std"]
strict-deserialise = ["dep:serde_ignored"]
validate-schema = [
"schema",
"dep:jsonschema",
]
validator = ["dep:validator"]
wasm-opt = []
[lib]
name = "noyalib"
path = "src/lib.rs"
[[example]]
name = "hello"
path = "examples/hello.rs"
[[example]]
name = "dynamic"
path = "examples/dynamic.rs"
[[example]]
name = "modify"
path = "examples/modify.rs"
[[example]]
name = "deep"
path = "examples/deep.rs"
[[example]]
name = "std"
path = "examples/std.rs"
[[example]]
name = "variants"
path = "examples/variants.rs"
[[example]]
name = "tags"
path = "examples/tags.rs"
[[example]]
name = "alias"
path = "examples/alias.rs"
[[example]]
name = "smart"
path = "examples/smart.rs"
[[example]]
name = "overlay"
path = "examples/overlay.rs"
[[example]]
name = "inherit"
path = "examples/inherit.rs"
[[example]]
name = "stream"
path = "examples/stream.rs"
[[example]]
name = "types"
path = "examples/types.rs"
[[example]]
name = "binary"
path = "examples/binary.rs"
[[example]]
name = "strict"
path = "examples/strict.rs"
[[example]]
name = "secure"
path = "examples/secure.rs"
[[example]]
name = "schema"
path = "examples/schema.rs"
[[example]]
name = "env"
path = "examples/env.rs"
[[example]]
name = "errors"
path = "examples/errors.rs"
[[example]]
name = "trace"
path = "examples/trace.rs"
[[example]]
name = "source"
path = "examples/source.rs"
[[example]]
name = "style"
path = "examples/style.rs"
[[example]]
name = "emit"
path = "examples/emit.rs"
[[example]]
name = "rename"
path = "examples/rename.rs"
[[example]]
name = "flatten"
path = "examples/flatten.rs"
[[example]]
name = "bridge"
path = "examples/bridge.rs"
[[example]]
name = "pipes"
path = "examples/pipes.rs"
[[example]]
name = "global"
path = "examples/global.rs"
[[example]]
name = "bench"
path = "examples/bench.rs"
[[example]]
name = "portable"
path = "examples/portable.rs"
[[example]]
name = "mask"
path = "examples/mask.rs"
[[example]]
name = "patch"
path = "examples/patch.rs"
[[example]]
name = "suggest"
path = "examples/suggest.rs"
[[example]]
name = "schema_ext"
path = "examples/schema_ext.rs"
[[example]]
name = "untagged"
path = "examples/untagged.rs"
[[example]]
name = "borrow"
path = "examples/borrow.rs"
[[example]]
name = "transcode"
path = "examples/transcode.rs"
[[example]]
name = "comments"
path = "examples/comments.rs"
[[example]]
name = "async_io"
path = "examples/async_io.rs"
[[example]]
name = "recursive"
path = "examples/recursive.rs"
[[example]]
name = "diagnostic"
path = "examples/diagnostic.rs"
[[example]]
name = "nostd"
path = "examples/nostd.rs"
[[example]]
name = "preserve"
path = "examples/preserve.rs"
[[example]]
name = "replay"
path = "examples/replay.rs"
[[example]]
name = "registry"
path = "examples/registry.rs"
[[example]]
name = "scientific"
path = "examples/scientific.rs"
[[example]]
name = "validation"
path = "examples/validation.rs"
[[example]]
name = "anchor_shared"
path = "examples/anchor_shared.rs"
[[example]]
name = "all"
path = "examples/all.rs"
[[example]]
name = "lossless_edit"
path = "examples/lossless_edit.rs"
[[example]]
name = "comments_at"
path = "examples/comments_at.rs"
[[example]]
name = "entry_api"
path = "examples/entry_api.rs"
[[example]]
name = "flattened"
path = "examples/flattened.rs"
[[example]]
name = "schema_validation"
path = "examples/schema_validation.rs"
required-features = ["validate-schema"]
[[example]]
name = "include"
path = "examples/include.rs"
[[example]]
name = "figment"
path = "examples/figment.rs"
required-features = ["figment"]
[[example]]
name = "validation_garde"
path = "examples/validation_garde.rs"
required-features = ["garde"]
[[example]]
name = "validation_validator"
path = "examples/validation_validator.rs"
required-features = ["validator"]
[[example]]
name = "diagnostic_path"
path = "examples/diagnostic_path.rs"
[[example]]
name = "robotics_polymorphism"
path = "examples/robotics_polymorphism.rs"
required-features = ["robotics"]
[[example]]
name = "zero_copy_borrow"
path = "examples/zero_copy_borrow.rs"
[[example]]
name = "read_iterator"
path = "examples/read_iterator.rs"
[[example]]
name = "properties_interpolation"
path = "examples/properties_interpolation.rs"
[[example]]
name = "ariadne_diagnostic"
path = "examples/ariadne_diagnostic.rs"
required-features = ["ariadne"]
[[example]]
name = "validated_miette"
path = "examples/validated_miette.rs"
required-features = [
"miette",
"garde",
]
[[example]]
name = "include_directive"
path = "examples/include_directive.rs"
required-features = ["include_fs"]
[[test]]
name = "alias_dual_label"
path = "tests/alias_dual_label.rs"
[[test]]
name = "anchor_shared_ser"
path = "tests/anchor_shared_ser.rs"
[[test]]
name = "anchors"
path = "tests/anchors.rs"
[[test]]
name = "ariadne_adapter"
path = "tests/ariadne_adapter.rs"
[[test]]
name = "binary_serde_bytes"
path = "tests/binary_serde_bytes.rs"
[[test]]
name = "binary_tag_for_string"
path = "tests/binary_tag_for_string.rs"
[[test]]
name = "borrowed_alias_resolution"
path = "tests/borrowed_alias_resolution.rs"
[[test]]
name = "budget_breach"
path = "tests/budget_breach.rs"
[[test]]
name = "coerce_to_schema"
path = "tests/coerce_to_schema.rs"
[[test]]
name = "coerce_to_schema_extra"
path = "tests/coerce_to_schema_extra.rs"
[[test]]
name = "comments"
path = "tests/comments.rs"
[[test]]
name = "competitive_features"
path = "tests/competitive_features.rs"
[[test]]
name = "competitive_features_full"
path = "tests/competitive_features_full.rs"
[[test]]
name = "competitor_bugs"
path = "tests/competitor_bugs.rs"
[[test]]
name = "complex_serde_interop"
path = "tests/complex_serde_interop.rs"
[[test]]
name = "config_macros"
path = "tests/config_macros.rs"
[[test]]
name = "coverage_100"
path = "tests/coverage_100.rs"
[[test]]
name = "coverage_boost"
path = "tests/coverage_boost.rs"
[[test]]
name = "coverage_borrowed"
path = "tests/coverage_borrowed.rs"
[[test]]
name = "coverage_borrowed_full"
path = "tests/coverage_borrowed_full.rs"
[[test]]
name = "coverage_de"
path = "tests/coverage_de.rs"
[[test]]
name = "coverage_error"
path = "tests/coverage_error.rs"
[[test]]
name = "coverage_final"
path = "tests/coverage_final.rs"
[[test]]
name = "coverage_final_sweep"
path = "tests/coverage_final_sweep.rs"
[[test]]
name = "coverage_final_sweep2"
path = "tests/coverage_final_sweep2.rs"
[[test]]
name = "coverage_final_sweep3"
path = "tests/coverage_final_sweep3.rs"
[[test]]
name = "coverage_final_sweep4"
path = "tests/coverage_final_sweep4.rs"
[[test]]
name = "coverage_fmt"
path = "tests/coverage_fmt.rs"
[[test]]
name = "coverage_full"
path = "tests/coverage_full.rs"
[[test]]
name = "coverage_gaps"
path = "tests/coverage_gaps.rs"
[[test]]
name = "coverage_loader"
path = "tests/coverage_loader.rs"
[[test]]
name = "coverage_loader_full"
path = "tests/coverage_loader_full.rs"
[[test]]
name = "coverage_misc"
path = "tests/coverage_misc.rs"
[[test]]
name = "coverage_regression"
path = "tests/coverage_regression.rs"
[[test]]
name = "coverage_remaining"
path = "tests/coverage_remaining.rs"
[[test]]
name = "coverage_scanner"
path = "tests/coverage_scanner.rs"
[[test]]
name = "coverage_ser"
path = "tests/coverage_ser.rs"
[[test]]
name = "coverage_spanned_anchors"
path = "tests/coverage_spanned_anchors.rs"
[[test]]
name = "coverage_value"
path = "tests/coverage_value.rs"
[[test]]
name = "cst_anchors"
path = "tests/cst_anchors.rs"
[[test]]
name = "cst_block_growth"
path = "tests/cst_block_growth.rs"
[[test]]
name = "cst_document_coverage"
path = "tests/cst_document_coverage.rs"
[[test]]
name = "cst_document_final_push"
path = "tests/cst_document_final_push.rs"
[[test]]
name = "cst_entry_or_insert"
path = "tests/cst_entry_or_insert.rs"
[[test]]
name = "cst_format"
path = "tests/cst_format.rs"
[[test]]
name = "cst_incremental"
path = "tests/cst_incremental.rs"
[[test]]
name = "cst_indent_detection"
path = "tests/cst_indent_detection.rs"
[[test]]
name = "cst_mutation"
path = "tests/cst_mutation.rs"
[[test]]
name = "cst_round_trip"
path = "tests/cst_round_trip.rs"
[[test]]
name = "cst_schema_tag_audit"
path = "tests/cst_schema_tag_audit.rs"
[[test]]
name = "cst_seq_edit"
path = "tests/cst_seq_edit.rs"
[[test]]
name = "cst_smart_styling"
path = "tests/cst_smart_styling.rs"
[[test]]
name = "cst_stream"
path = "tests/cst_stream.rs"
[[test]]
name = "cst_structure"
path = "tests/cst_structure.rs"
[[test]]
name = "cst_style_heuristics"
path = "tests/cst_style_heuristics.rs"
[[test]]
name = "cst_tag_span"
path = "tests/cst_tag_span.rs"
[[test]]
name = "de"
path = "tests/de.rs"
[[test]]
name = "de_branch_coverage"
path = "tests/de_branch_coverage.rs"
[[test]]
name = "de_coverage_extra"
path = "tests/de_coverage_extra.rs"
[[test]]
name = "de_streaming_branch_extra"
path = "tests/de_streaming_branch_extra.rs"
[[test]]
name = "edge_audit"
path = "tests/edge_audit.rs"
[[test]]
name = "edge_cases"
path = "tests/edge_cases.rs"
[[test]]
name = "error_coverage_extra"
path = "tests/error_coverage_extra.rs"
[[test]]
name = "error_render"
path = "tests/error_render.rs"
[[test]]
name = "error_snippet_radius"
path = "tests/error_snippet_radius.rs"
[[test]]
name = "figment_provider"
path = "tests/figment_provider.rs"
[[test]]
name = "flatten_value"
path = "tests/flatten_value.rs"
[[test]]
name = "flattened_capture"
path = "tests/flattened_capture.rs"
[[test]]
name = "fmt"
path = "tests/fmt.rs"
[[test]]
name = "i18n_formatters"
path = "tests/i18n_formatters.rs"
[[test]]
name = "include_directive"
path = "tests/include_directive.rs"
[[test]]
name = "json_surrogate_escape"
path = "tests/json_surrogate_escape.rs"
[[test]]
name = "leading_comment_repro"
path = "tests/leading_comment_repro.rs"
[[test]]
name = "legacy_sexagesimal"
path = "tests/legacy_sexagesimal.rs"
[[test]]
name = "mapping_any"
path = "tests/mapping_any.rs"
[[test]]
name = "merge_key_policy"
path = "tests/merge_key_policy.rs"
[[test]]
name = "merge_keys_streaming"
path = "tests/merge_keys_streaming.rs"
[[test]]
name = "multi_doc"
path = "tests/multi_doc.rs"
[[test]]
name = "no_span_loader_coverage"
path = "tests/no_span_loader_coverage.rs"
[[test]]
name = "official_suite"
path = "tests/official_suite.rs"
[[test]]
name = "panic_free"
path = "tests/panic_free.rs"
[[test]]
name = "parser_coverage_extra"
path = "tests/parser_coverage_extra.rs"
[[test]]
name = "phase1_features"
path = "tests/phase1_features.rs"
[[test]]
name = "phase2"
path = "tests/phase2.rs"
[[test]]
name = "phase3"
path = "tests/phase3.rs"
[[test]]
name = "phase4"
path = "tests/phase4.rs"
[[test]]
name = "phase5"
path = "tests/phase5.rs"
[[test]]
name = "policy"
path = "tests/policy.rs"
[[test]]
name = "properties_interpolation"
path = "tests/properties_interpolation.rs"
[[test]]
name = "property_interpolation"
path = "tests/property_interpolation.rs"
[[test]]
name = "proptest"
path = "tests/proptest.rs"
[[test]]
name = "read_iterator"
path = "tests/read_iterator.rs"
[[test]]
name = "recursive_anchors"
path = "tests/recursive_anchors.rs"
[[test]]
name = "require_indent"
path = "tests/require_indent.rs"
[[test]]
name = "review_fixes"
path = "tests/review_fixes.rs"
[[test]]
name = "roundtrip_edge_cases"
path = "tests/roundtrip_edge_cases.rs"
[[test]]
name = "scalar_resolution_toggles"
path = "tests/scalar_resolution_toggles.rs"
[[test]]
name = "scanner_panic_regressions"
path = "tests/scanner_panic_regressions.rs"
[[test]]
name = "schema_codegen"
path = "tests/schema_codegen.rs"
[[test]]
name = "schema_validate"
path = "tests/schema_validate.rs"
[[test]]
name = "ser"
path = "tests/ser.rs"
[[test]]
name = "ser_cst_coverage_extra"
path = "tests/ser_cst_coverage_extra.rs"
[[test]]
name = "serde"
path = "tests/serde.rs"
[[test]]
name = "serde_ecosystem"
path = "tests/serde_ecosystem.rs"
[[test]]
name = "simd_equivalence"
path = "tests/simd_equivalence.rs"
[[test]]
name = "spanned"
path = "tests/spanned.rs"
[[test]]
name = "spec"
path = "tests/spec.rs"
[[test]]
name = "streaming_binary"
path = "tests/streaming_binary.rs"
[[test]]
name = "streaming_coverage_extra"
path = "tests/streaming_coverage_extra.rs"
[[test]]
name = "streaming_de_final_push"
path = "tests/streaming_de_final_push.rs"
[[test]]
name = "streaming_public_api"
path = "tests/streaming_public_api.rs"
[[test]]
name = "streaming_round3_push"
path = "tests/streaming_round3_push.rs"
[[test]]
name = "stress_load"
path = "tests/stress_load.rs"
[[test]]
name = "tag_registry"
path = "tests/tag_registry.rs"
[[test]]
name = "ux_diagnostics"
path = "tests/ux_diagnostics.rs"
[[test]]
name = "validated_garde"
path = "tests/validated_garde.rs"
[[test]]
name = "validated_miette_bridge"
path = "tests/validated_miette_bridge.rs"
[[test]]
name = "validated_validator"
path = "tests/validated_validator.rs"
[[test]]
name = "value"
path = "tests/value.rs"
[[test]]
name = "value_coverage_extra"
path = "tests/value_coverage_extra.rs"
[[test]]
name = "value_final_push"
path = "tests/value_final_push.rs"
[[test]]
name = "yaml_compliance_report"
path = "tests/yaml_compliance_report.rs"
[[test]]
name = "yaml_version"
path = "tests/yaml_version.rs"
[[test]]
name = "zero_copy_str_deser"
path = "tests/zero_copy_str_deser.rs"
[[bench]]
name = "architecture"
path = "benches/architecture.rs"
harness = false
[[bench]]
name = "benchmarks"
path = "benches/benchmarks.rs"
harness = false
[[bench]]
name = "comparison"
path = "benches/comparison.rs"
harness = false
[[bench]]
name = "incremental_repair"
path = "benches/incremental_repair.rs"
harness = false
[[bench]]
name = "large_doc_soak"
path = "benches/large_doc_soak.rs"
harness = false
[[bench]]
name = "numeric_parse"
path = "benches/numeric_parse.rs"
harness = false
[[bench]]
name = "simd"
path = "benches/simd.rs"
harness = false
required-features = ["simd"]
[[bench]]
name = "streaming_vs_value"
path = "benches/streaming_vs_value.rs"
harness = false
[[bench]]
name = "structural_bitmask"
path = "benches/structural_bitmask.rs"
harness = false
[[bench]]
name = "validation_overhead"
path = "benches/validation_overhead.rs"
harness = false
[dependencies.ariadne]
version = "0.5"
optional = true
default-features = false
[dependencies.figment]
version = "0.10"
features = ["env"]
optional = true
[dependencies.garde]
version = "0.22"
features = ["derive"]
optional = true
default-features = false
[dependencies.indexmap]
version = ">=2, <3"
features = ["serde"]
[dependencies.itoa]
version = "1"
optional = true
[dependencies.jsonschema]
version = "0.33"
optional = true
default-features = false
[dependencies.memchr]
version = "2.7"
[dependencies.miette]
version = "7"
optional = true
[dependencies.rayon]
version = "1.10"
optional = true
[dependencies.rustc-hash]
version = ">=2, <3"
[dependencies.ryu]
version = "1"
optional = true
[dependencies.schemars]
version = "1.2"
features = [
"derive",
"std",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = [
"derive",
"alloc",
]
default-features = false
[dependencies.serde-saphyr]
version = "0.0"
optional = true
[dependencies.serde_ignored]
version = "0.1"
optional = true
[dependencies.serde_json]
version = "1.0"
optional = true
[dependencies.smallvec]
version = "1.13"
default-features = false
[dependencies.validator]
version = "0.19"
features = ["derive"]
optional = true
[dev-dependencies.criterion]
version = "0.5"
[dev-dependencies.proptest]
version = "1.11"
[dev-dependencies.rust-yaml]
version = "0.0.5"
[dev-dependencies.serde_bytes]
version = "0.11"
[dev-dependencies.serde_ignored]
version = "0.1"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.serde_path_to_error]
version = "0.1"
[dev-dependencies.serde_yaml_ng]
version = "0.10"
[dev-dependencies.serde_yml]
version = "0.0"
[dev-dependencies.yaml-rust2]
version = "0.9"
[dev-dependencies.yaml-spanned]
version = "0.0"
[lints.rust]
bare_trait_objects = "allow"
dead_code = "deny"
deprecated_in_future = "deny"
elided_lifetimes_in_paths = "allow"
ellipsis_inclusive_range_patterns = "deny"
explicit_outlives_requirements = "deny"
macro_use_extern_crate = "deny"
meta_variable_misuse = "deny"
missing_copy_implementations = "warn"
missing_debug_implementations = "forbid"
missing_docs = "warn"
non_ascii_idents = "forbid"
noop_method_call = "deny"
single_use_lifetimes = "deny"
trivial_casts = "deny"
trivial_numeric_casts = "deny"
unreachable_pub = "forbid"
unsafe_code = "forbid"
unstable_features = "warn"
unused_extern_crates = "warn"
unused_features = "deny"
unused_import_braces = "deny"
unused_labels = "deny"
unused_lifetimes = "deny"
unused_macro_rules = "deny"
unused_qualifications = "deny"
unused_results = "warn"
variant_size_differences = "deny"
[lints.rust.future_incompatible]
level = "deny"
priority = -1
[lints.rust.keyword_idents]
level = "deny"
priority = -1
[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1
[lints.rust.rust_2021_compatibility]
level = "deny"
priority = -1
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(noyalib_nightly)",
"cfg(noyalib_coverage)",
"cfg(docsrs)",
]
[lints.rust.unused]
level = "deny"
priority = -1