-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
48 lines (45 loc) · 1.97 KB
/
Copy pathCargo.toml
File metadata and controls
48 lines (45 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[package]
name = "yamlrocks"
version = "0.1.0"
edition = "2021"
rust-version = "1.75"
license = "MIT"
description = "A fast, correct YAML library for Python"
# Distributed as a Python wheel via maturin, never published to crates.io.
publish = false
[lib]
name = "_yamlrocks"
# cdylib for the Python extension module; rlib so the fuzz harness (see `fuzz/`)
# can link the crate and exercise the pure-Rust parser directly.
crate-type = ["cdylib", "rlib"]
[dependencies]
# Fast hasher for the document-local key-intern cache on the decode hot path.
# Unlike a plain FxHash it seeds from a per-process random state, so it keeps
# SipHash's resistance to hash-flooding from attacker-controlled mapping keys.
ahash = "0.8"
# Canonicalize paths without Windows' extended-length `\\?\` verbatim prefix, so
# include-path confinement and the paths returned by `save()` compare and read
# back the same on every platform.
dunce = "1"
# Fast integer-to-decimal formatting for the dumps hot path, avoiding the slower
# generic `core::fmt` machinery (same digits, just a tighter specialized path).
itoa = "1"
# SIMD byte search for the single-quoted scalar scan: skipping a long content run
# to the closing quote beats a per-byte comparison loop. Already in the tree
# transitively (via regex), so promoting it to a direct dep adds no build cost.
memchr = "2"
pyo3 = { version = "0.29", features = ["extension-module", "py-clone"] }
# JSON Schema `pattern`/`patternProperties` validation. The `regex` crate runs in
# guaranteed linear time (no catastrophic backtracking), so an attacker-supplied
# schema pattern cannot be turned into a ReDoS against the validator.
regex = "1"
smallvec = "1"
# Grows the native stack on demand so recursive descent over deeply nested input
# cannot overflow a small thread stack (musl/threadpool deployments) and abort the
# interpreter; the depth cap still bounds total work. See `stack::guard`.
stacker = "0.1"
[profile.release]
codegen-units = 1
lto = "fat"
opt-level = 3
strip = "symbols"