deepdiff-rs 0.3.0__cp39-abi3-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
deepdiff_rs/__init__.py
ADDED
|
Binary file
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: deepdiff-rs
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Classifier: Programming Language :: Python :: 3
|
|
5
|
+
Classifier: Programming Language :: Rust
|
|
6
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
7
|
+
Classifier: Operating System :: OS Independent
|
|
8
|
+
Summary: onix is a Rust rewrite of Python DeepDiff's core: byte-compatible output, 37-4588x faster, with ignore_order support included.
|
|
9
|
+
Keywords: diff,deepdiff,json,rust,performance
|
|
10
|
+
Author: Rodrigo Carvajal
|
|
11
|
+
License: MIT
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
14
|
+
Project-URL: Homepage, https://github.com/ksco92/onix
|
|
15
|
+
Project-URL: Repository, https://github.com/ksco92/onix
|
|
16
|
+
|
|
17
|
+
# deepdiff-rs
|
|
18
|
+
|
|
19
|
+
[](https://github.com/ksco92/onix/actions/workflows/check.yml)
|
|
20
|
+
[](https://pypi.org/project/deepdiff-rs/)
|
|
21
|
+
[](LICENSE)
|
|
22
|
+
[](https://github.com/ksco92/onix/commits/main)
|
|
23
|
+
|
|
24
|
+
**onix is a Rust rewrite of Python DeepDiff's core: byte-compatible output, 37-4588x faster, with `ignore_order` support included.** Install it as `deepdiff-rs`, a drop-in `DeepDiff` class for Python, or run the diff engine as the `onix` command-line tool.
|
|
25
|
+
|
|
26
|
+
`deepdiff-rs` reads live Python objects (or JSON) and produces the exact same report [DeepDiff](https://github.com/seperman/deepdiff) does at `verbose_level=2`, so it slots into code that already parses DeepDiff output while running dramatically faster on large or deeply nested inputs.
|
|
27
|
+
|
|
28
|
+
Status (September 2026): pre-alpha proof of concept. Ordered and `ignore_order` diffing are complete, differentially tested against real DeepDiff 9.1.0, and [benchmarked](perf/RESULTS.md); `deepdiff-rs` is published to PyPI, the `onix` CLI builds and runs from source, and nothing is on crates.io yet.
|
|
29
|
+
|
|
30
|
+
## Table of contents
|
|
31
|
+
|
|
32
|
+
- [Install](#install)
|
|
33
|
+
- [Quickstart](#quickstart)
|
|
34
|
+
- [Known limitations](#known-limitations)
|
|
35
|
+
- [Performance](#performance)
|
|
36
|
+
- [Reference](#reference)
|
|
37
|
+
- [Layout](#layout)
|
|
38
|
+
- [Contributing](#contributing)
|
|
39
|
+
- [License](#license)
|
|
40
|
+
|
|
41
|
+
## Install
|
|
42
|
+
|
|
43
|
+
Python (the `deepdiff-rs` package, import name `deepdiff_rs`):
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
pip install deepdiff-rs
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
From source:
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
cd crates/onix-py
|
|
53
|
+
uv tool install maturin # the build tool (skip if already installed)
|
|
54
|
+
uv sync --group test # creates .venv, installs pytest + pinned deepdiff
|
|
55
|
+
uv run --group test maturin develop --release
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
CLI (the `onix` binary), from a clean clone:
|
|
59
|
+
|
|
60
|
+
```sh
|
|
61
|
+
cargo install --path crates/onix-cli
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Library crate (`onix-core`), a path dependency only (it sets `publish = false`):
|
|
65
|
+
|
|
66
|
+
```toml
|
|
67
|
+
[dependencies]
|
|
68
|
+
onix-core = { path = "crates/onix-core" }
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Quickstart
|
|
72
|
+
|
|
73
|
+
The drop-in `DeepDiff` class, on live Python objects:
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
from deepdiff_rs import DeepDiff
|
|
77
|
+
|
|
78
|
+
diff = DeepDiff({"a": 1}, {"a": 2})
|
|
79
|
+
if diff:
|
|
80
|
+
print(diff.to_json()) # byte-compatible with DeepDiff(...).to_json() at verbose_level=2
|
|
81
|
+
print(diff.to_dict()) # the same report as a native Python dict
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
{"values_changed":{"root['a']":{"new_value":2,"old_value":1}}}
|
|
86
|
+
{'values_changed': {"root['a']": {'new_value': 2, 'old_value': 1}}}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`diff_json`, the fast path when you already have JSON text (it parses, diffs, and serializes entirely in Rust, with no Python-object conversion):
|
|
90
|
+
|
|
91
|
+
```python
|
|
92
|
+
from deepdiff_rs import diff_json
|
|
93
|
+
|
|
94
|
+
print(diff_json('{"a": 1}', '{"a": 2}'))
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
{"values_changed":{"root['a']":{"new_value":2,"old_value":1}}}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
The `onix` CLI, diffing two JSON files (compact JSON to stdout, `{}` for no differences):
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
$ echo '{"a": 1}' > left.json
|
|
105
|
+
$ echo '{"a": 2}' > right.json
|
|
106
|
+
$ onix diff left.json right.json
|
|
107
|
+
{"values_changed":{"root['a']":{"new_value":2,"old_value":1}}}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Pass `--ignore-order` to compare every list by value instead of by position, mirroring `DeepDiff(..., ignore_order=True)`.
|
|
111
|
+
|
|
112
|
+
## Known limitations
|
|
113
|
+
|
|
114
|
+
- Only the core diff is implemented: `exclude_paths`, `significant_digits`, custom operators, `verbose_level != 2`, and delta/patch are not (yet) supported.
|
|
115
|
+
- Supported value types are `None`, `bool`, `int`, `float`, `str`, `dict` (with `str` keys), and `list`; `int`s must fit in `i64`/`u64`, `float`s must be finite, and anything else (tuple, set, date, custom object, non-`str` dict key) raises `TypeError` or `ValueError` naming the exact path it was found at. See [`crates/onix-py/src/convert.rs`](crates/onix-py/src/convert.rs).
|
|
116
|
+
- Adversarially deep input raises `MaxDepthError` instead of crashing: the default `max_depth` is 512 and the hard ceiling is `MAX_DEPTH_CEILING` (20,000). See [`crates/onix-py/src/guard.rs`](crates/onix-py/src/guard.rs).
|
|
117
|
+
- `ignore_order` pairing is `O(N^2)` in unpaired elements per side and carries a polynomial cost in both time and memory with input depth; it has no `max_passes`/`max_diffs` cutoff, so bound the size and depth of untrusted input yourself. See [`crates/onix-core/src/ignore_order/mod.rs`](crates/onix-core/src/ignore_order/mod.rs).
|
|
118
|
+
- Output is byte-identical to DeepDiff except for one boundary case: integers past `2^53` (the limit of exact `f64` representation) inside ordered scalar lists. See [`tests/golden/README.md`](tests/golden/README.md).
|
|
119
|
+
|
|
120
|
+
## Performance
|
|
121
|
+
|
|
122
|
+
Two committed, regenerable reports back the numbers below; every figure here is copied verbatim from them.
|
|
123
|
+
|
|
124
|
+
The Python bindings against real `deepdiff` on **live Python objects**, the number a real caller pays (source: [`crates/onix-py/benchmarks/bench_bindings.py`](crates/onix-py/benchmarks/bench_bindings.py), macOS 26.5.1, Apple M5 Max, median of 11 isolated subprocess runs per side):
|
|
125
|
+
|
|
126
|
+
| Shape | deepdiff | deepdiff_rs | Speedup |
|
|
127
|
+
| --- | --- | --- | --- |
|
|
128
|
+
| `ignore_order`, 10k shuffled ints, ~5% mutated (live objects) | 3128.94ms | 82.57ms | **37.89x** |
|
|
129
|
+
| peak RSS | 228.0 MB | 141.2 MB | **1.61x** |
|
|
130
|
+
| CPU seconds | 3.128 s | 0.083 s | **37.88x** |
|
|
131
|
+
| Heterogeneous API-payload records, n=20,000 (live objects) | 3466.52ms | 149.18ms | **23.24x** |
|
|
132
|
+
| peak RSS | 117.5 MB | 148.3 MB | **0.79x** |
|
|
133
|
+
| CPU seconds | 3.465 s | 0.149 s | **23.24x** |
|
|
134
|
+
| Same `ignore_order` shape, via `diff_json` (JSON-string path) | 3133.45ms | 83.16ms | **37.68x** |
|
|
135
|
+
| peak RSS | 228.9 MB | 141.7 MB | **1.62x** |
|
|
136
|
+
| CPU seconds | 3.131 s | 0.083 s | **37.68x** |
|
|
137
|
+
| Same API-payload shape, via `diff_json` (JSON-string path) | 4568.33ms | 86.33ms | **52.92x** |
|
|
138
|
+
| peak RSS | 139.0 MB | 141.7 MB | **0.98x** |
|
|
139
|
+
| CPU seconds | 4.566 s | 0.086 s | **52.90x** |
|
|
140
|
+
| Same API-payload shape, both tools reading two JSON files from disk | 4571.28ms | 85.35ms | **53.56x** |
|
|
141
|
+
| peak RSS | 139.0 MB | 141.8 MB | **0.98x** |
|
|
142
|
+
| CPU seconds | 4.569 s | 0.085 s | **53.54x** |
|
|
143
|
+
|
|
144
|
+
The engine's own diff-only time and peak resident memory against pinned `deepdiff` 9.1.0 (source: [`perf/RESULTS.md`](perf/RESULTS.md), same machine, median over tier-appropriate runs, diff time excluding process startup and JSON parsing on both sides):
|
|
145
|
+
|
|
146
|
+
| Fixture | onix diff-only (median, min-max) | deepdiff diff-only (median, min-max) | Speedup | onix peak RSS | deepdiff peak RSS | Memory ratio | ≥5x threshold |
|
|
147
|
+
|---|---|---|---|---|---|---|---|
|
|
148
|
+
| `flat_dict_10k` | 3.093 ms (3.020 ms-3.153 ms) | 143.691 ms (140.322 ms-145.891 ms) | 46.46x | 5.72 MB | 39.46 MB | 6.90x | ✅ |
|
|
149
|
+
| `flat_dict_100k` | 38.354 ms (37.963 ms-38.916 ms) | 1.596 s (1.584 s-1.686 s) | 41.60x | 40.53 MB | 110.95 MB | 2.74x | ✅ |
|
|
150
|
+
| `flat_dict_1m` | 450.356 ms (449.689 ms-467.911 ms) | 16.936 s (16.889 s-17.154 s) | 37.60x | 478.10 MB | 753.75 MB | 1.58x | ✅ |
|
|
151
|
+
| `flat_list_100k` | 81.787 ms (78.266 ms-89.593 ms) | 4.798 s (4.746 s-4.828 s) | 58.67x | 38.16 MB | 155.11 MB | 4.06x | ✅ |
|
|
152
|
+
| `nested_uniform_d6_b10` | 208.770 ms (208.269 ms-209.842 ms) | 71.500 s (71.498 s-72.875 s) | 342.48x | 224.58 MB | 908.33 MB | 4.04x | ✅ |
|
|
153
|
+
| `api_payloads` | 160.667 ms (153.309 ms-171.032 ms) | 94.138 s (93.625 s-94.669 s) | 585.92x | 269.39 MB | 544.98 MB | 2.02x | ✅ |
|
|
154
|
+
| `deep_narrow_d120` | 0.027 ms (0.026 ms-0.028 ms) | 123.792 ms (123.234 ms-124.809 ms) | 4588.45x | 2.18 MB | 41.08 MB | 18.85x | ✅ |
|
|
155
|
+
| `startup_trivial` | 0.001 ms (0.001 ms-0.001 ms) | 0.181 ms (0.174 ms-0.207 ms) | 177.24x | 2.18 MB | 32.69 MB | 15.00x | ✅ |
|
|
156
|
+
| `ignore_order_10k` | 80.965 ms (80.117 ms-83.510 ms) | 13.010 s (12.900 s-13.023 s) | 160.68x | 108.82 MB | 345.41 MB | 3.17x | ✅ |
|
|
157
|
+
| `identical_1m` | 6.996 ms (6.114 ms-7.731 ms) | 15.853 s (15.773 s-16.021 s) | 2266.18x | 315.39 MB | 503.28 MB | 1.60x | ✅ |
|
|
158
|
+
|
|
159
|
+
Both reports carry their full methodology, fairness rules, and the reproduce command. `perf/RESULTS.md` is an upper bound (JSON parsed straight into the engine, no Python-object conversion); the bindings table is the product-surface number. Regenerate them with `perf/run_bench.sh` and `crates/onix-py/benchmarks/bench_bindings.py` (see [CONTRIBUTING.md](CONTRIBUTING.md)).
|
|
160
|
+
|
|
161
|
+
## Reference
|
|
162
|
+
|
|
163
|
+
**Python API.** The public surface is `DeepDiff`, `diff_json`, `MaxDepthError`, and `MAX_DEPTH_CEILING`.
|
|
164
|
+
|
|
165
|
+
- `DeepDiff(t1, t2, ignore_order=False, max_depth=None)`: diffs two live Python objects; `.to_json()` returns the DeepDiff-compatible JSON string, `.to_dict()` the same report as a dict, and the instance is falsy when there is no difference.
|
|
166
|
+
- `diff_json(a, b, ignore_order=False, max_depth=None) -> str`: diffs two JSON strings entirely in Rust and returns the report as a JSON string.
|
|
167
|
+
- `MaxDepthError` (a `ValueError` subclass) is raised when input exceeds `max_depth`; `MAX_DEPTH_CEILING` (20,000) is the hard upper bound on `max_depth`.
|
|
168
|
+
|
|
169
|
+
**CLI.** `onix diff <a.json> <b.json> [--max-depth N] [--ignore-order] [--timing]` reads both files as JSON and prints a compact, single-line DeepDiff-compatible report to stdout (`{}` when there is no difference).
|
|
170
|
+
|
|
171
|
+
- `--max-depth N` overrides the recursion-depth bound (default: the `ONIX_MAX_DEPTH` environment variable if set, else 512).
|
|
172
|
+
- `--ignore-order` compares every list/tuple by hash-based matching instead of by position, mirroring `DeepDiff(..., ignore_order=True)`.
|
|
173
|
+
- `--timing` prints one line of JSON (`{"parse_ns": N, "diff_ns": N}`) to stderr.
|
|
174
|
+
|
|
175
|
+
Exit codes:
|
|
176
|
+
|
|
177
|
+
| Code | Meaning |
|
|
178
|
+
| --- | --- |
|
|
179
|
+
| `0` | Diff computed successfully (whether or not the report is empty; differences are carried in the stdout JSON, not the exit code). |
|
|
180
|
+
| `1` | Usage error (missing/unknown subcommand, wrong argument count, unknown flag, non-numeric `--max-depth`); details and a usage line go to stderr. |
|
|
181
|
+
| `2` | I/O error (e.g. a missing input file) or a JSON-parse error on either input. |
|
|
182
|
+
| `3` | `max_depth` exceeded; the path that tripped the bound goes to stderr. |
|
|
183
|
+
|
|
184
|
+
## Layout
|
|
185
|
+
|
|
186
|
+
```
|
|
187
|
+
crates/onix-core # the diff engine (library, no I/O)
|
|
188
|
+
crates/onix-cli # the `onix` binary (thin CLI over the core)
|
|
189
|
+
crates/onix-py # PyO3 bindings, published as `deepdiff-rs`
|
|
190
|
+
scripts/ # gen_goldens.py: regenerates tests/golden/ from real DeepDiff
|
|
191
|
+
tests/golden # DeepDiff-generated expected outputs (the compatibility corpus)
|
|
192
|
+
perf/ # cross-language benchmark harness and RESULTS.md
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
## Contributing
|
|
196
|
+
|
|
197
|
+
This is a pre-alpha proof of concept and issues and pull requests are welcome. Open an issue to report a bug, a DeepDiff divergence (include both inputs and the report each engine produces), or a question. Building from source, the quality gates, the golden corpus, benchmarking, mutation testing, and publishing are all in [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
198
|
+
|
|
199
|
+
## License
|
|
200
|
+
|
|
201
|
+
MIT: see [LICENSE](LICENSE).
|
|
202
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
deepdiff_rs/__init__.py,sha256=xS3l0yUSFL6bn9FLNDHqSUPCBkgCV6A14sos3JnF53A,127
|
|
2
|
+
deepdiff_rs/deepdiff_rs.pyd,sha256=VqLWLXnzWH7qr56p05DIzhl5kMxF1XuCvo8IgzHrIh0,737792
|
|
3
|
+
deepdiff_rs-0.3.0.dist-info/METADATA,sha256=Qu3o0fbL9Xtr6UGsyDqLMVKUX5PsI5SOfCR94iXMyLE,11864
|
|
4
|
+
deepdiff_rs-0.3.0.dist-info/WHEEL,sha256=xe4_tbg8wYdeh4O7nLbnWckzIQtCR4nODDgwke_TKy8,95
|
|
5
|
+
deepdiff_rs-0.3.0.dist-info/sboms/onix-py.cyclonedx.json,sha256=Oh0c5xe6ID9QAT1C8Qo4XOde0EfafhmrsWqEqc6eMLo,23744
|
|
6
|
+
deepdiff_rs-0.3.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,784 @@
|
|
|
1
|
+
{
|
|
2
|
+
"bomFormat": "CycloneDX",
|
|
3
|
+
"specVersion": "1.5",
|
|
4
|
+
"version": 1,
|
|
5
|
+
"serialNumber": "urn:uuid:94502161-a4a6-4c16-8159-9ad5d17ebb02",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"timestamp": "2026-09-03T14:49:45.178043500Z",
|
|
8
|
+
"tools": [
|
|
9
|
+
{
|
|
10
|
+
"vendor": "CycloneDX",
|
|
11
|
+
"name": "cargo-cyclonedx",
|
|
12
|
+
"version": "0.5.9"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"component": {
|
|
16
|
+
"type": "library",
|
|
17
|
+
"bom-ref": "path+file:///D:/a/onix/onix/crates/onix-py#0.3.0",
|
|
18
|
+
"name": "onix-py",
|
|
19
|
+
"version": "0.3.0",
|
|
20
|
+
"description": "Python bindings (PyO3) for the onix diff engine",
|
|
21
|
+
"scope": "required",
|
|
22
|
+
"licenses": [
|
|
23
|
+
{
|
|
24
|
+
"expression": "MIT"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"purl": "pkg:cargo/onix-py@0.3.0?download_url=file://.",
|
|
28
|
+
"components": [
|
|
29
|
+
{
|
|
30
|
+
"type": "library",
|
|
31
|
+
"bom-ref": "path+file:///D:/a/onix/onix/crates/onix-py#0.3.0 bin-target-0",
|
|
32
|
+
"name": "deepdiff_rs",
|
|
33
|
+
"version": "0.3.0",
|
|
34
|
+
"purl": "pkg:cargo/onix-py@0.3.0?download_url=file://.#src/lib.rs"
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
"properties": [
|
|
39
|
+
{
|
|
40
|
+
"name": "cdx:rustc:sbom:target:all_targets",
|
|
41
|
+
"value": "true"
|
|
42
|
+
}
|
|
43
|
+
]
|
|
44
|
+
},
|
|
45
|
+
"components": [
|
|
46
|
+
{
|
|
47
|
+
"type": "library",
|
|
48
|
+
"bom-ref": "path+file:///D:/a/onix/onix/crates/onix-core#0.3.0",
|
|
49
|
+
"name": "onix-core",
|
|
50
|
+
"version": "0.3.0",
|
|
51
|
+
"description": "Core structural-diff engine with DeepDiff-compatible reports",
|
|
52
|
+
"scope": "required",
|
|
53
|
+
"licenses": [
|
|
54
|
+
{
|
|
55
|
+
"expression": "MIT"
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
"purl": "pkg:cargo/onix-core@0.3.0?download_url=file://..\\onix-core"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"type": "library",
|
|
62
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0",
|
|
63
|
+
"name": "heck",
|
|
64
|
+
"version": "0.5.0",
|
|
65
|
+
"description": "heck is a case conversion library.",
|
|
66
|
+
"scope": "required",
|
|
67
|
+
"hashes": [
|
|
68
|
+
{
|
|
69
|
+
"alg": "SHA-256",
|
|
70
|
+
"content": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"licenses": [
|
|
74
|
+
{
|
|
75
|
+
"expression": "MIT OR Apache-2.0"
|
|
76
|
+
}
|
|
77
|
+
],
|
|
78
|
+
"purl": "pkg:cargo/heck@0.5.0",
|
|
79
|
+
"externalReferences": [
|
|
80
|
+
{
|
|
81
|
+
"type": "vcs",
|
|
82
|
+
"url": "https://github.com/withoutboats/heck"
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"type": "library",
|
|
88
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18",
|
|
89
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
90
|
+
"name": "itoa",
|
|
91
|
+
"version": "1.0.18",
|
|
92
|
+
"description": "Fast integer primitive to string conversion",
|
|
93
|
+
"scope": "required",
|
|
94
|
+
"hashes": [
|
|
95
|
+
{
|
|
96
|
+
"alg": "SHA-256",
|
|
97
|
+
"content": "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"licenses": [
|
|
101
|
+
{
|
|
102
|
+
"expression": "MIT OR Apache-2.0"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"purl": "pkg:cargo/itoa@1.0.18",
|
|
106
|
+
"externalReferences": [
|
|
107
|
+
{
|
|
108
|
+
"type": "documentation",
|
|
109
|
+
"url": "https://docs.rs/itoa"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"type": "vcs",
|
|
113
|
+
"url": "https://github.com/dtolnay/itoa"
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"type": "library",
|
|
119
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189",
|
|
120
|
+
"name": "libc",
|
|
121
|
+
"version": "0.2.189",
|
|
122
|
+
"description": "Raw FFI bindings to platform libraries like libc.",
|
|
123
|
+
"scope": "required",
|
|
124
|
+
"hashes": [
|
|
125
|
+
{
|
|
126
|
+
"alg": "SHA-256",
|
|
127
|
+
"content": "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"licenses": [
|
|
131
|
+
{
|
|
132
|
+
"expression": "MIT OR Apache-2.0"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"purl": "pkg:cargo/libc@0.2.189",
|
|
136
|
+
"externalReferences": [
|
|
137
|
+
{
|
|
138
|
+
"type": "vcs",
|
|
139
|
+
"url": "https://github.com/rust-lang/libc"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"type": "library",
|
|
145
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3",
|
|
146
|
+
"author": "Andrew Gallant <jamslam@gmail.com>, bluss",
|
|
147
|
+
"name": "memchr",
|
|
148
|
+
"version": "2.8.3",
|
|
149
|
+
"description": "Provides extremely fast (uses SIMD on x86_64, aarch64 and wasm32) routines for 1, 2 or 3 byte search and single substring search. ",
|
|
150
|
+
"scope": "required",
|
|
151
|
+
"hashes": [
|
|
152
|
+
{
|
|
153
|
+
"alg": "SHA-256",
|
|
154
|
+
"content": "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
155
|
+
}
|
|
156
|
+
],
|
|
157
|
+
"licenses": [
|
|
158
|
+
{
|
|
159
|
+
"expression": "Unlicense OR MIT"
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
"purl": "pkg:cargo/memchr@2.8.3",
|
|
163
|
+
"externalReferences": [
|
|
164
|
+
{
|
|
165
|
+
"type": "documentation",
|
|
166
|
+
"url": "https://docs.rs/memchr/"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"type": "website",
|
|
170
|
+
"url": "https://github.com/BurntSushi/memchr"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"type": "vcs",
|
|
174
|
+
"url": "https://github.com/BurntSushi/memchr"
|
|
175
|
+
}
|
|
176
|
+
]
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"type": "library",
|
|
180
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4",
|
|
181
|
+
"author": "Aleksey Kladov <aleksey.kladov@gmail.com>",
|
|
182
|
+
"name": "once_cell",
|
|
183
|
+
"version": "1.21.4",
|
|
184
|
+
"description": "Single assignment cells and lazy values.",
|
|
185
|
+
"scope": "required",
|
|
186
|
+
"hashes": [
|
|
187
|
+
{
|
|
188
|
+
"alg": "SHA-256",
|
|
189
|
+
"content": "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"licenses": [
|
|
193
|
+
{
|
|
194
|
+
"expression": "MIT OR Apache-2.0"
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"purl": "pkg:cargo/once_cell@1.21.4",
|
|
198
|
+
"externalReferences": [
|
|
199
|
+
{
|
|
200
|
+
"type": "documentation",
|
|
201
|
+
"url": "https://docs.rs/once_cell"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"type": "vcs",
|
|
205
|
+
"url": "https://github.com/matklad/once_cell"
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"type": "library",
|
|
211
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
|
|
212
|
+
"author": "David Tolnay <dtolnay@gmail.com>, Alex Crichton <alex@alexcrichton.com>",
|
|
213
|
+
"name": "proc-macro2",
|
|
214
|
+
"version": "1.0.107",
|
|
215
|
+
"description": "A substitute implementation of the compiler's `proc_macro` API to decouple token-based libraries from the procedural macro use case.",
|
|
216
|
+
"scope": "required",
|
|
217
|
+
"hashes": [
|
|
218
|
+
{
|
|
219
|
+
"alg": "SHA-256",
|
|
220
|
+
"content": "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"licenses": [
|
|
224
|
+
{
|
|
225
|
+
"expression": "MIT OR Apache-2.0"
|
|
226
|
+
}
|
|
227
|
+
],
|
|
228
|
+
"purl": "pkg:cargo/proc-macro2@1.0.107",
|
|
229
|
+
"externalReferences": [
|
|
230
|
+
{
|
|
231
|
+
"type": "documentation",
|
|
232
|
+
"url": "https://docs.rs/proc-macro2"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"type": "vcs",
|
|
236
|
+
"url": "https://github.com/dtolnay/proc-macro2"
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"type": "library",
|
|
242
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.29.2",
|
|
243
|
+
"author": "PyO3 Project and Contributors <https://github.com/PyO3>",
|
|
244
|
+
"name": "pyo3-build-config",
|
|
245
|
+
"version": "0.29.2",
|
|
246
|
+
"description": "Build configuration for the PyO3 ecosystem",
|
|
247
|
+
"scope": "excluded",
|
|
248
|
+
"hashes": [
|
|
249
|
+
{
|
|
250
|
+
"alg": "SHA-256",
|
|
251
|
+
"content": "f41027e41b4bd03f6e60f9f417fe24a6341a6bb744edd62b6f709f2a52ea30e9"
|
|
252
|
+
}
|
|
253
|
+
],
|
|
254
|
+
"licenses": [
|
|
255
|
+
{
|
|
256
|
+
"expression": "MIT OR Apache-2.0"
|
|
257
|
+
}
|
|
258
|
+
],
|
|
259
|
+
"purl": "pkg:cargo/pyo3-build-config@0.29.2",
|
|
260
|
+
"externalReferences": [
|
|
261
|
+
{
|
|
262
|
+
"type": "website",
|
|
263
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"type": "vcs",
|
|
267
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"type": "library",
|
|
273
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.29.2",
|
|
274
|
+
"author": "PyO3 Project and Contributors <https://github.com/PyO3>",
|
|
275
|
+
"name": "pyo3-ffi",
|
|
276
|
+
"version": "0.29.2",
|
|
277
|
+
"description": "Python-API bindings for the PyO3 ecosystem",
|
|
278
|
+
"scope": "required",
|
|
279
|
+
"hashes": [
|
|
280
|
+
{
|
|
281
|
+
"alg": "SHA-256",
|
|
282
|
+
"content": "e591a95526fead067432c3b3a33fc74770b87b1e04e73671090d9c2055a2b327"
|
|
283
|
+
}
|
|
284
|
+
],
|
|
285
|
+
"licenses": [
|
|
286
|
+
{
|
|
287
|
+
"expression": "MIT OR Apache-2.0"
|
|
288
|
+
}
|
|
289
|
+
],
|
|
290
|
+
"purl": "pkg:cargo/pyo3-ffi@0.29.2",
|
|
291
|
+
"externalReferences": [
|
|
292
|
+
{
|
|
293
|
+
"type": "website",
|
|
294
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"type": "other",
|
|
298
|
+
"url": "python"
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"type": "vcs",
|
|
302
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
303
|
+
}
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"type": "library",
|
|
308
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.29.2",
|
|
309
|
+
"author": "PyO3 Project and Contributors <https://github.com/PyO3>",
|
|
310
|
+
"name": "pyo3-macros-backend",
|
|
311
|
+
"version": "0.29.2",
|
|
312
|
+
"description": "Code generation for PyO3 package",
|
|
313
|
+
"scope": "required",
|
|
314
|
+
"hashes": [
|
|
315
|
+
{
|
|
316
|
+
"alg": "SHA-256",
|
|
317
|
+
"content": "571575aa3749fa6216757dd47d2a3e7ef360f329a40f0666a9fbd14889024952"
|
|
318
|
+
}
|
|
319
|
+
],
|
|
320
|
+
"licenses": [
|
|
321
|
+
{
|
|
322
|
+
"expression": "MIT OR Apache-2.0"
|
|
323
|
+
}
|
|
324
|
+
],
|
|
325
|
+
"purl": "pkg:cargo/pyo3-macros-backend@0.29.2",
|
|
326
|
+
"externalReferences": [
|
|
327
|
+
{
|
|
328
|
+
"type": "website",
|
|
329
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"type": "vcs",
|
|
333
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
334
|
+
}
|
|
335
|
+
]
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
"type": "library",
|
|
339
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.29.2",
|
|
340
|
+
"author": "PyO3 Project and Contributors <https://github.com/PyO3>",
|
|
341
|
+
"name": "pyo3-macros",
|
|
342
|
+
"version": "0.29.2",
|
|
343
|
+
"description": "Proc macros for PyO3 package",
|
|
344
|
+
"scope": "required",
|
|
345
|
+
"hashes": [
|
|
346
|
+
{
|
|
347
|
+
"alg": "SHA-256",
|
|
348
|
+
"content": "73225868fc1cd84eef2c3c230ddb91273bf1de46aeb8a4248da76d32a0924a1c"
|
|
349
|
+
}
|
|
350
|
+
],
|
|
351
|
+
"licenses": [
|
|
352
|
+
{
|
|
353
|
+
"expression": "MIT OR Apache-2.0"
|
|
354
|
+
}
|
|
355
|
+
],
|
|
356
|
+
"purl": "pkg:cargo/pyo3-macros@0.29.2",
|
|
357
|
+
"externalReferences": [
|
|
358
|
+
{
|
|
359
|
+
"type": "website",
|
|
360
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"type": "vcs",
|
|
364
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
365
|
+
}
|
|
366
|
+
]
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"type": "library",
|
|
370
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.29.2",
|
|
371
|
+
"author": "PyO3 Project and Contributors <https://github.com/PyO3>",
|
|
372
|
+
"name": "pyo3",
|
|
373
|
+
"version": "0.29.2",
|
|
374
|
+
"description": "Bindings to Python interpreter",
|
|
375
|
+
"scope": "required",
|
|
376
|
+
"hashes": [
|
|
377
|
+
{
|
|
378
|
+
"alg": "SHA-256",
|
|
379
|
+
"content": "4688ddedf473e32662b9b067670129a8afb8c18e351482c70d62ba4a88171e8b"
|
|
380
|
+
}
|
|
381
|
+
],
|
|
382
|
+
"licenses": [
|
|
383
|
+
{
|
|
384
|
+
"expression": "MIT OR Apache-2.0"
|
|
385
|
+
}
|
|
386
|
+
],
|
|
387
|
+
"purl": "pkg:cargo/pyo3@0.29.2",
|
|
388
|
+
"externalReferences": [
|
|
389
|
+
{
|
|
390
|
+
"type": "documentation",
|
|
391
|
+
"url": "https://docs.rs/crate/pyo3/"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"type": "website",
|
|
395
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
396
|
+
},
|
|
397
|
+
{
|
|
398
|
+
"type": "other",
|
|
399
|
+
"url": "pyo3-python"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"type": "vcs",
|
|
403
|
+
"url": "https://github.com/pyo3/pyo3"
|
|
404
|
+
}
|
|
405
|
+
]
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"type": "library",
|
|
409
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
|
|
410
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
411
|
+
"name": "quote",
|
|
412
|
+
"version": "1.0.47",
|
|
413
|
+
"description": "Quasi-quoting macro quote!(...)",
|
|
414
|
+
"scope": "required",
|
|
415
|
+
"hashes": [
|
|
416
|
+
{
|
|
417
|
+
"alg": "SHA-256",
|
|
418
|
+
"content": "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
419
|
+
}
|
|
420
|
+
],
|
|
421
|
+
"licenses": [
|
|
422
|
+
{
|
|
423
|
+
"expression": "MIT OR Apache-2.0"
|
|
424
|
+
}
|
|
425
|
+
],
|
|
426
|
+
"purl": "pkg:cargo/quote@1.0.47",
|
|
427
|
+
"externalReferences": [
|
|
428
|
+
{
|
|
429
|
+
"type": "documentation",
|
|
430
|
+
"url": "https://docs.rs/quote/"
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"type": "vcs",
|
|
434
|
+
"url": "https://github.com/dtolnay/quote"
|
|
435
|
+
}
|
|
436
|
+
]
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
"type": "library",
|
|
440
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
441
|
+
"author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
|
|
442
|
+
"name": "serde",
|
|
443
|
+
"version": "1.0.229",
|
|
444
|
+
"description": "A generic serialization/deserialization framework",
|
|
445
|
+
"scope": "required",
|
|
446
|
+
"hashes": [
|
|
447
|
+
{
|
|
448
|
+
"alg": "SHA-256",
|
|
449
|
+
"content": "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
450
|
+
}
|
|
451
|
+
],
|
|
452
|
+
"licenses": [
|
|
453
|
+
{
|
|
454
|
+
"expression": "MIT OR Apache-2.0"
|
|
455
|
+
}
|
|
456
|
+
],
|
|
457
|
+
"purl": "pkg:cargo/serde@1.0.229",
|
|
458
|
+
"externalReferences": [
|
|
459
|
+
{
|
|
460
|
+
"type": "documentation",
|
|
461
|
+
"url": "https://docs.rs/serde"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"type": "website",
|
|
465
|
+
"url": "https://serde.rs"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"type": "vcs",
|
|
469
|
+
"url": "https://github.com/serde-rs/serde"
|
|
470
|
+
}
|
|
471
|
+
]
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"type": "library",
|
|
475
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229",
|
|
476
|
+
"author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
|
|
477
|
+
"name": "serde_core",
|
|
478
|
+
"version": "1.0.229",
|
|
479
|
+
"description": "Serde traits only, with no support for derive -- use the `serde` crate instead",
|
|
480
|
+
"scope": "required",
|
|
481
|
+
"hashes": [
|
|
482
|
+
{
|
|
483
|
+
"alg": "SHA-256",
|
|
484
|
+
"content": "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
485
|
+
}
|
|
486
|
+
],
|
|
487
|
+
"licenses": [
|
|
488
|
+
{
|
|
489
|
+
"expression": "MIT OR Apache-2.0"
|
|
490
|
+
}
|
|
491
|
+
],
|
|
492
|
+
"purl": "pkg:cargo/serde_core@1.0.229",
|
|
493
|
+
"externalReferences": [
|
|
494
|
+
{
|
|
495
|
+
"type": "documentation",
|
|
496
|
+
"url": "https://docs.rs/serde_core"
|
|
497
|
+
},
|
|
498
|
+
{
|
|
499
|
+
"type": "website",
|
|
500
|
+
"url": "https://serde.rs"
|
|
501
|
+
},
|
|
502
|
+
{
|
|
503
|
+
"type": "vcs",
|
|
504
|
+
"url": "https://github.com/serde-rs/serde"
|
|
505
|
+
}
|
|
506
|
+
]
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"type": "library",
|
|
510
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151",
|
|
511
|
+
"author": "Erick Tryzelaar <erick.tryzelaar@gmail.com>, David Tolnay <dtolnay@gmail.com>",
|
|
512
|
+
"name": "serde_json",
|
|
513
|
+
"version": "1.0.151",
|
|
514
|
+
"description": "A JSON serialization file format",
|
|
515
|
+
"scope": "required",
|
|
516
|
+
"hashes": [
|
|
517
|
+
{
|
|
518
|
+
"alg": "SHA-256",
|
|
519
|
+
"content": "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
520
|
+
}
|
|
521
|
+
],
|
|
522
|
+
"licenses": [
|
|
523
|
+
{
|
|
524
|
+
"expression": "MIT OR Apache-2.0"
|
|
525
|
+
}
|
|
526
|
+
],
|
|
527
|
+
"purl": "pkg:cargo/serde_json@1.0.151",
|
|
528
|
+
"externalReferences": [
|
|
529
|
+
{
|
|
530
|
+
"type": "documentation",
|
|
531
|
+
"url": "https://docs.rs/serde_json"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"type": "vcs",
|
|
535
|
+
"url": "https://github.com/serde-rs/json"
|
|
536
|
+
}
|
|
537
|
+
]
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
"type": "library",
|
|
541
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119",
|
|
542
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
543
|
+
"name": "syn",
|
|
544
|
+
"version": "2.0.119",
|
|
545
|
+
"description": "Parser for Rust source code",
|
|
546
|
+
"scope": "required",
|
|
547
|
+
"hashes": [
|
|
548
|
+
{
|
|
549
|
+
"alg": "SHA-256",
|
|
550
|
+
"content": "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
|
|
551
|
+
}
|
|
552
|
+
],
|
|
553
|
+
"licenses": [
|
|
554
|
+
{
|
|
555
|
+
"expression": "MIT OR Apache-2.0"
|
|
556
|
+
}
|
|
557
|
+
],
|
|
558
|
+
"purl": "pkg:cargo/syn@2.0.119",
|
|
559
|
+
"externalReferences": [
|
|
560
|
+
{
|
|
561
|
+
"type": "documentation",
|
|
562
|
+
"url": "https://docs.rs/syn"
|
|
563
|
+
},
|
|
564
|
+
{
|
|
565
|
+
"type": "vcs",
|
|
566
|
+
"url": "https://github.com/dtolnay/syn"
|
|
567
|
+
}
|
|
568
|
+
]
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"type": "library",
|
|
572
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5",
|
|
573
|
+
"author": "Dan Gohman <sunfish@mozilla.com>",
|
|
574
|
+
"name": "target-lexicon",
|
|
575
|
+
"version": "0.13.5",
|
|
576
|
+
"description": "LLVM target triple types",
|
|
577
|
+
"scope": "excluded",
|
|
578
|
+
"hashes": [
|
|
579
|
+
{
|
|
580
|
+
"alg": "SHA-256",
|
|
581
|
+
"content": "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
582
|
+
}
|
|
583
|
+
],
|
|
584
|
+
"licenses": [
|
|
585
|
+
{
|
|
586
|
+
"expression": "Apache-2.0 WITH LLVM-exception"
|
|
587
|
+
}
|
|
588
|
+
],
|
|
589
|
+
"purl": "pkg:cargo/target-lexicon@0.13.5",
|
|
590
|
+
"externalReferences": [
|
|
591
|
+
{
|
|
592
|
+
"type": "documentation",
|
|
593
|
+
"url": "https://docs.rs/target-lexicon/"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"type": "vcs",
|
|
597
|
+
"url": "https://github.com/bytecodealliance/target-lexicon"
|
|
598
|
+
}
|
|
599
|
+
]
|
|
600
|
+
},
|
|
601
|
+
{
|
|
602
|
+
"type": "library",
|
|
603
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24",
|
|
604
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
605
|
+
"name": "unicode-ident",
|
|
606
|
+
"version": "1.0.24",
|
|
607
|
+
"description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
|
|
608
|
+
"scope": "required",
|
|
609
|
+
"hashes": [
|
|
610
|
+
{
|
|
611
|
+
"alg": "SHA-256",
|
|
612
|
+
"content": "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
613
|
+
}
|
|
614
|
+
],
|
|
615
|
+
"licenses": [
|
|
616
|
+
{
|
|
617
|
+
"expression": "(MIT OR Apache-2.0) AND Unicode-3.0"
|
|
618
|
+
}
|
|
619
|
+
],
|
|
620
|
+
"purl": "pkg:cargo/unicode-ident@1.0.24",
|
|
621
|
+
"externalReferences": [
|
|
622
|
+
{
|
|
623
|
+
"type": "documentation",
|
|
624
|
+
"url": "https://docs.rs/unicode-ident"
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
"type": "vcs",
|
|
628
|
+
"url": "https://github.com/dtolnay/unicode-ident"
|
|
629
|
+
}
|
|
630
|
+
]
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
"type": "library",
|
|
634
|
+
"bom-ref": "registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23",
|
|
635
|
+
"author": "David Tolnay <dtolnay@gmail.com>",
|
|
636
|
+
"name": "zmij",
|
|
637
|
+
"version": "1.0.23",
|
|
638
|
+
"description": "A double-to-string conversion algorithm based on Schubfach and xjb",
|
|
639
|
+
"scope": "required",
|
|
640
|
+
"hashes": [
|
|
641
|
+
{
|
|
642
|
+
"alg": "SHA-256",
|
|
643
|
+
"content": "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|
|
644
|
+
}
|
|
645
|
+
],
|
|
646
|
+
"licenses": [
|
|
647
|
+
{
|
|
648
|
+
"expression": "MIT"
|
|
649
|
+
}
|
|
650
|
+
],
|
|
651
|
+
"purl": "pkg:cargo/zmij@1.0.23",
|
|
652
|
+
"externalReferences": [
|
|
653
|
+
{
|
|
654
|
+
"type": "documentation",
|
|
655
|
+
"url": "https://docs.rs/zmij"
|
|
656
|
+
},
|
|
657
|
+
{
|
|
658
|
+
"type": "vcs",
|
|
659
|
+
"url": "https://github.com/dtolnay/zmij"
|
|
660
|
+
}
|
|
661
|
+
]
|
|
662
|
+
}
|
|
663
|
+
],
|
|
664
|
+
"dependencies": [
|
|
665
|
+
{
|
|
666
|
+
"ref": "path+file:///D:/a/onix/onix/crates/onix-core#0.3.0",
|
|
667
|
+
"dependsOn": [
|
|
668
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
669
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151"
|
|
670
|
+
]
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"ref": "path+file:///D:/a/onix/onix/crates/onix-py#0.3.0",
|
|
674
|
+
"dependsOn": [
|
|
675
|
+
"path+file:///D:/a/onix/onix/crates/onix-core#0.3.0",
|
|
676
|
+
"registry+https://github.com/rust-lang/crates.io-index#pyo3@0.29.2",
|
|
677
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151"
|
|
678
|
+
]
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0"
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18"
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4"
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
|
|
697
|
+
"dependsOn": [
|
|
698
|
+
"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
|
|
699
|
+
]
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.29.2",
|
|
703
|
+
"dependsOn": [
|
|
704
|
+
"registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5"
|
|
705
|
+
]
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.29.2",
|
|
709
|
+
"dependsOn": [
|
|
710
|
+
"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189",
|
|
711
|
+
"registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.29.2"
|
|
712
|
+
]
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.29.2",
|
|
716
|
+
"dependsOn": [
|
|
717
|
+
"registry+https://github.com/rust-lang/crates.io-index#heck@0.5.0",
|
|
718
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
|
|
719
|
+
"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
|
|
720
|
+
"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119"
|
|
721
|
+
]
|
|
722
|
+
},
|
|
723
|
+
{
|
|
724
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.29.2",
|
|
725
|
+
"dependsOn": [
|
|
726
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
|
|
727
|
+
"registry+https://github.com/rust-lang/crates.io-index#pyo3-macros-backend@0.29.2",
|
|
728
|
+
"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
|
|
729
|
+
"registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119"
|
|
730
|
+
]
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#pyo3@0.29.2",
|
|
734
|
+
"dependsOn": [
|
|
735
|
+
"registry+https://github.com/rust-lang/crates.io-index#libc@0.2.189",
|
|
736
|
+
"registry+https://github.com/rust-lang/crates.io-index#once_cell@1.21.4",
|
|
737
|
+
"registry+https://github.com/rust-lang/crates.io-index#pyo3-build-config@0.29.2",
|
|
738
|
+
"registry+https://github.com/rust-lang/crates.io-index#pyo3-ffi@0.29.2",
|
|
739
|
+
"registry+https://github.com/rust-lang/crates.io-index#pyo3-macros@0.29.2"
|
|
740
|
+
]
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
|
|
744
|
+
"dependsOn": [
|
|
745
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107"
|
|
746
|
+
]
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
750
|
+
"dependsOn": [
|
|
751
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229"
|
|
752
|
+
]
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229"
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151",
|
|
759
|
+
"dependsOn": [
|
|
760
|
+
"registry+https://github.com/rust-lang/crates.io-index#itoa@1.0.18",
|
|
761
|
+
"registry+https://github.com/rust-lang/crates.io-index#memchr@2.8.3",
|
|
762
|
+
"registry+https://github.com/rust-lang/crates.io-index#serde_core@1.0.229",
|
|
763
|
+
"registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23"
|
|
764
|
+
]
|
|
765
|
+
},
|
|
766
|
+
{
|
|
767
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#syn@2.0.119",
|
|
768
|
+
"dependsOn": [
|
|
769
|
+
"registry+https://github.com/rust-lang/crates.io-index#proc-macro2@1.0.107",
|
|
770
|
+
"registry+https://github.com/rust-lang/crates.io-index#quote@1.0.47",
|
|
771
|
+
"registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
|
|
772
|
+
]
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#target-lexicon@0.13.5"
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#unicode-ident@1.0.24"
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
"ref": "registry+https://github.com/rust-lang/crates.io-index#zmij@1.0.23"
|
|
782
|
+
}
|
|
783
|
+
]
|
|
784
|
+
}
|