dumpling-cli 0.6.0__tar.gz → 0.7.0b0__tar.gz
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.
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.dumplingconf.example +4 -2
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/ci.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/platform-compat-latest.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/platform-compat-matrix.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/policy-lint.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/publish.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/release.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/tests.yml +1 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/AGENTS.md +4 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/CHANGELOG.md +27 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/Cargo.lock +132 -3
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/Cargo.toml +5 -1
- dumpling_cli-0.7.0b0/LICENSE +21 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/PKG-INFO +217 -190
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/README.md +213 -189
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/docs/src/configuration.md +118 -9
- dumpling_cli-0.7.0b0/docs/src/getting-started.md +63 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/docs/src/index.md +3 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/pyproject.toml +4 -1
- dumpling_cli-0.7.0b0/src/compressed_input.rs +340 -0
- dumpling_cli-0.7.0b0/src/dump_input_detect.rs +171 -0
- dumpling_cli-0.7.0b0/src/dump_input_resolve.rs +224 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/filter.rs +93 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/lint.rs +5 -0
- dumpling_cli-0.7.0b0/src/log_sanitize.rs +29 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/main.rs +375 -205
- dumpling_cli-0.7.0b0/src/pg_restore_decode.rs +221 -0
- dumpling_cli-0.7.0b0/src/scaffold.rs +255 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/scan.rs +2 -1
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/seal.rs +23 -26
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/settings.rs +145 -9
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/sql.rs +863 -121
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/transform.rs +323 -2
- dumpling_cli-0.6.0/docs/src/getting-started.md +0 -33
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/docs-pr.yml +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.github/workflows/docs.yml +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/.gitignore +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/CONTRIBUTING.md +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/CONTRIBUTORS.md +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/MAINTENANCE.md +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/assets/logo.svg +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/book.toml +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/datetime_out.sql +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/datetime_sample.sql +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/docs/src/SUMMARY.md +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/docs/src/ci-guardrails.md +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/docs/src/releasing.md +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/rust-toolchain.toml +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/scripts/setup-dev.sh +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/faker_dispatch.rs +0 -0
- {dumpling_cli-0.6.0 → dumpling_cli-0.7.0b0}/src/report.rs +0 -0
|
@@ -59,8 +59,10 @@ last_login = { strategy = "datetime_fuzz" }
|
|
|
59
59
|
wake_time = { strategy = "time_fuzz", min_seconds = -3600, max_seconds = 3600 }
|
|
60
60
|
|
|
61
61
|
[rules."public.orders"]
|
|
62
|
-
# credit card —
|
|
63
|
-
credit_card = { strategy = "
|
|
62
|
+
# credit card — Luhn-valid synthetic PAN (length 13–19); use domain for stable FKs across dumps
|
|
63
|
+
credit_card = { strategy = "payment_card", length = 16, domain = "order_pan" }
|
|
64
|
+
# monetary / numeric — random decimal in range with fixed fractional digits
|
|
65
|
+
order_total = { strategy = "decimal", min = 0, max = 99999, scale = 2, domain = "order_amount" }
|
|
64
66
|
# keep the same anonymized email as users table via shared domain
|
|
65
67
|
customer_email = { strategy = "faker", faker = "internet::SafeEmail", domain = "customer_identity" }
|
|
66
68
|
|
|
@@ -28,6 +28,9 @@ src/
|
|
|
28
28
|
filter.rs — Row-filter predicate evaluation (eq/neq/like/regex/JSON-path/…)
|
|
29
29
|
scan.rs — Post-transform residual PII scanner (email/SSN/PAN/token regex)
|
|
30
30
|
report.rs — JSON report data structures and Reporter helper
|
|
31
|
+
compressed_input.rs — gzip/ZIP wrappers; streaming vs temp materialization
|
|
32
|
+
dump_input_resolve.rs — shared `--input` file resolution for anonymize + scaffold-config
|
|
33
|
+
dump_input_detect.rs — PGDMP / directory dumps / MSSQL sniff helpers
|
|
31
34
|
docs/src/ — mdBook documentation source
|
|
32
35
|
.github/ — CI/CD GitHub Actions workflows
|
|
33
36
|
Cargo.toml — Rust package manifest
|
|
@@ -221,7 +224,7 @@ Follow these steps in order. Do not skip any step.
|
|
|
221
224
|
|
|
222
225
|
7. **Tests**: Add `#[test]` functions in `src/transform.rs` (unit-test strategy output values) and in `src/sql.rs` (end-to-end pipeline test). Use `set_random_seed(N)` for reproducibility.
|
|
223
226
|
|
|
224
|
-
8. **`README.md`**:
|
|
227
|
+
8. **`README.md`**: Document the strategy under *Configuration → Anonymization strategies* (per-strategy subsection with accepted options), and mention any new spec fields in `AnonymizerSpec`’s doc comment in `settings.rs`.
|
|
225
228
|
|
|
226
229
|
**`faker` strategy:** Config only carries string identifiers; Dumpling never evaluates user Rust from config. To ship a new generator, add dispatch in `src/faker_dispatch.rs` and validation in `validate_anonymizer_spec` for the `faker` branch. Upstream reference: [`fake` on docs.rs](https://docs.rs/fake/latest/fake/), [`fake::faker` module index](https://docs.rs/fake/latest/fake/faker/index.html), [source on GitHub](https://github.com/cksac/fake-rs).
|
|
227
230
|
|
|
@@ -7,11 +7,35 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.7.0-beta] - 2026-05-07
|
|
11
|
+
|
|
12
|
+
Second **0.7.x** prerelease toward stable **0.7.0**.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Gzip and ZIP inputs**: plain-SQL payloads inside **gzip** are decompressed **in-process** (streamed) when possible—no temporary file. Dumpling still materializes to the temp directory when required: **ZIP** archives (random-access central directory), **gzip wrapping `PGDMP`** or an inner **ZIP** (nested wrappers), or other cases where a filesystem path is needed for `pg_restore`. Temporary files are registered for removal when processing finishes. **`--in-place` is rejected** only when Dumpling had to write a **temporary** decompressed/extracted file (not when gzip plain-SQL streaming was used). Full multi-file ZIP packages (for example BACPAC) are still not supported as SQL input.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- **CLI**: removed **`--dump-decode`**. PostgreSQL **custom-format** (`PGDMP`) and **directory-format** (`toc.dat`) inputs are auto-detected when `--format postgres` (default) and decoded with `pg_restore -f -`. Options renamed: **`--pg-restore-arg`** (repeatable, was `--dump-decode-arg`), **`--keep-original`** (was `--dump-decode-keep-input` / `--pg-restore-keep-input`). **`--keep-original` is incompatible with `--in-place`** (use `--output` or stdout). Optional `[pg_restore]` table in config for default path/args.
|
|
21
|
+
|
|
22
|
+
## [0.7.0-alpha] - 2026-05-04
|
|
23
|
+
|
|
24
|
+
First **0.7.x** prerelease toward stable **0.7.0** (superseded by **0.7.0-beta** for ongoing development builds).
|
|
25
|
+
|
|
26
|
+
### Removed
|
|
27
|
+
|
|
28
|
+
- **`--include-table` / `--exclude-table`**: these CLI flags and the associated per-table skip logic in the SQL stream processor are removed. Anonymize the full dump, or split/filter dumps outside Dumpling if you need a smaller input.
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **Dump seal (`v=3`):** the fingerprint JSON no longer includes table-filter fields. Seals produced by Dumpling **0.6.x** (`v=2`) will not match **0.7.x**; the first line is treated as stale and the dump is re-processed.
|
|
33
|
+
|
|
10
34
|
## [0.6.0] - 2026-05-03
|
|
11
35
|
|
|
12
36
|
### Added
|
|
13
37
|
|
|
14
|
-
- **Dump seal** (leading `-- dumpling-seal:` SQL comment): records Dumpling version, security profile, a SHA-256 fingerprint of the resolved policy, and runtime CLI options that affect transforms (`--format
|
|
38
|
+
- **Dump seal** (leading `-- dumpling-seal:` SQL comment): records Dumpling version, security profile, a SHA-256 fingerprint of the resolved policy, and runtime CLI options that affect transforms (`--format` and the effective PRNG seed in standard profile; `null` in hardened, where seeds are ignored). When the input already begins with a **matching** seal, the remainder is copied through unchanged; stale or unknown seal lines are stripped and the dump is re-processed. See README for full semantics ([#58](https://github.com/ababic/dumpling/pull/58)).
|
|
15
39
|
- **`--stats`**: prints `wall_ms` plus `domain_cache_hits` and `domain_cache_misses` for quick profiling of large runs ([#59](https://github.com/ababic/dumpling/pull/59)).
|
|
16
40
|
- **`CONTRIBUTORS.md`** ([#59](https://github.com/ababic/dumpling/pull/59)).
|
|
17
41
|
|
|
@@ -101,6 +125,8 @@ and this project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.ht
|
|
|
101
125
|
- Configurable output scan severities and per-category thresholds via `[output_scan]`.
|
|
102
126
|
- JSON report section for output scan findings including category, count, threshold, severity, and sample locations.
|
|
103
127
|
|
|
128
|
+
[0.7.0-beta]: https://github.com/ababic/dumpling/compare/v0.7.0-alpha...v0.7.0-beta
|
|
129
|
+
[0.7.0-alpha]: https://github.com/ababic/dumpling/compare/v0.6.0...v0.7.0-alpha
|
|
104
130
|
[0.6.0]: https://github.com/ababic/dumpling/compare/v0.5.0...v0.6.0
|
|
105
131
|
[0.5.0]: https://github.com/ababic/dumpling/compare/v0.4.3...v0.5.0
|
|
106
132
|
[0.4.3]: https://github.com/ababic/dumpling/compare/v0.4.2...v0.4.3
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
# It is not intended for manual editing.
|
|
3
3
|
version = 4
|
|
4
4
|
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "adler2"
|
|
7
|
+
version = "2.0.1"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|
10
|
+
|
|
5
11
|
[[package]]
|
|
6
12
|
name = "aho-corasick"
|
|
7
13
|
version = "1.1.4"
|
|
@@ -76,6 +82,15 @@ version = "1.0.102"
|
|
|
76
82
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
77
83
|
checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c"
|
|
78
84
|
|
|
85
|
+
[[package]]
|
|
86
|
+
name = "arbitrary"
|
|
87
|
+
version = "1.4.2"
|
|
88
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
89
|
+
checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1"
|
|
90
|
+
dependencies = [
|
|
91
|
+
"derive_arbitrary",
|
|
92
|
+
]
|
|
93
|
+
|
|
79
94
|
[[package]]
|
|
80
95
|
name = "autocfg"
|
|
81
96
|
version = "1.5.0"
|
|
@@ -187,6 +202,21 @@ dependencies = [
|
|
|
187
202
|
"libc",
|
|
188
203
|
]
|
|
189
204
|
|
|
205
|
+
[[package]]
|
|
206
|
+
name = "crc32fast"
|
|
207
|
+
version = "1.5.0"
|
|
208
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
209
|
+
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
|
210
|
+
dependencies = [
|
|
211
|
+
"cfg-if",
|
|
212
|
+
]
|
|
213
|
+
|
|
214
|
+
[[package]]
|
|
215
|
+
name = "crossbeam-utils"
|
|
216
|
+
version = "0.8.21"
|
|
217
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
218
|
+
checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
|
|
219
|
+
|
|
190
220
|
[[package]]
|
|
191
221
|
name = "crypto-common"
|
|
192
222
|
version = "0.1.7"
|
|
@@ -231,6 +261,17 @@ dependencies = [
|
|
|
231
261
|
"syn",
|
|
232
262
|
]
|
|
233
263
|
|
|
264
|
+
[[package]]
|
|
265
|
+
name = "derive_arbitrary"
|
|
266
|
+
version = "1.4.2"
|
|
267
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
268
|
+
checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a"
|
|
269
|
+
dependencies = [
|
|
270
|
+
"proc-macro2",
|
|
271
|
+
"quote",
|
|
272
|
+
"syn",
|
|
273
|
+
]
|
|
274
|
+
|
|
234
275
|
[[package]]
|
|
235
276
|
name = "deunicode"
|
|
236
277
|
version = "1.6.2"
|
|
@@ -248,6 +289,17 @@ dependencies = [
|
|
|
248
289
|
"subtle",
|
|
249
290
|
]
|
|
250
291
|
|
|
292
|
+
[[package]]
|
|
293
|
+
name = "displaydoc"
|
|
294
|
+
version = "0.2.5"
|
|
295
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
296
|
+
checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
|
|
297
|
+
dependencies = [
|
|
298
|
+
"proc-macro2",
|
|
299
|
+
"quote",
|
|
300
|
+
"syn",
|
|
301
|
+
]
|
|
302
|
+
|
|
251
303
|
[[package]]
|
|
252
304
|
name = "dummy"
|
|
253
305
|
version = "0.11.0"
|
|
@@ -262,12 +314,13 @@ dependencies = [
|
|
|
262
314
|
|
|
263
315
|
[[package]]
|
|
264
316
|
name = "dumpling"
|
|
265
|
-
version = "0.
|
|
317
|
+
version = "0.7.0-beta"
|
|
266
318
|
dependencies = [
|
|
267
319
|
"anyhow",
|
|
268
320
|
"chrono",
|
|
269
321
|
"clap",
|
|
270
322
|
"fake",
|
|
323
|
+
"flate2",
|
|
271
324
|
"getrandom 0.2.17",
|
|
272
325
|
"hmac",
|
|
273
326
|
"lazy_static",
|
|
@@ -276,8 +329,9 @@ dependencies = [
|
|
|
276
329
|
"serde",
|
|
277
330
|
"serde_json",
|
|
278
331
|
"sha2",
|
|
279
|
-
"thiserror",
|
|
332
|
+
"thiserror 1.0.69",
|
|
280
333
|
"toml",
|
|
334
|
+
"zip",
|
|
281
335
|
]
|
|
282
336
|
|
|
283
337
|
[[package]]
|
|
@@ -310,6 +364,16 @@ version = "0.1.9"
|
|
|
310
364
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
311
365
|
checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582"
|
|
312
366
|
|
|
367
|
+
[[package]]
|
|
368
|
+
name = "flate2"
|
|
369
|
+
version = "1.1.9"
|
|
370
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
371
|
+
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
|
|
372
|
+
dependencies = [
|
|
373
|
+
"crc32fast",
|
|
374
|
+
"miniz_oxide",
|
|
375
|
+
]
|
|
376
|
+
|
|
313
377
|
[[package]]
|
|
314
378
|
name = "fnv"
|
|
315
379
|
version = "1.0.7"
|
|
@@ -456,6 +520,16 @@ version = "2.8.0"
|
|
|
456
520
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
457
521
|
checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
|
|
458
522
|
|
|
523
|
+
[[package]]
|
|
524
|
+
name = "miniz_oxide"
|
|
525
|
+
version = "0.8.9"
|
|
526
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
527
|
+
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
|
528
|
+
dependencies = [
|
|
529
|
+
"adler2",
|
|
530
|
+
"simd-adler32",
|
|
531
|
+
]
|
|
532
|
+
|
|
459
533
|
[[package]]
|
|
460
534
|
name = "num-traits"
|
|
461
535
|
version = "0.2.19"
|
|
@@ -643,6 +717,12 @@ version = "1.3.0"
|
|
|
643
717
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
644
718
|
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
|
|
645
719
|
|
|
720
|
+
[[package]]
|
|
721
|
+
name = "simd-adler32"
|
|
722
|
+
version = "0.3.9"
|
|
723
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
724
|
+
checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
|
|
725
|
+
|
|
646
726
|
[[package]]
|
|
647
727
|
name = "strsim"
|
|
648
728
|
version = "0.11.1"
|
|
@@ -672,7 +752,16 @@ version = "1.0.69"
|
|
|
672
752
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
673
753
|
checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52"
|
|
674
754
|
dependencies = [
|
|
675
|
-
"thiserror-impl",
|
|
755
|
+
"thiserror-impl 1.0.69",
|
|
756
|
+
]
|
|
757
|
+
|
|
758
|
+
[[package]]
|
|
759
|
+
name = "thiserror"
|
|
760
|
+
version = "2.0.18"
|
|
761
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
762
|
+
checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
|
|
763
|
+
dependencies = [
|
|
764
|
+
"thiserror-impl 2.0.18",
|
|
676
765
|
]
|
|
677
766
|
|
|
678
767
|
[[package]]
|
|
@@ -686,6 +775,17 @@ dependencies = [
|
|
|
686
775
|
"syn",
|
|
687
776
|
]
|
|
688
777
|
|
|
778
|
+
[[package]]
|
|
779
|
+
name = "thiserror-impl"
|
|
780
|
+
version = "2.0.18"
|
|
781
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
782
|
+
checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
|
|
783
|
+
dependencies = [
|
|
784
|
+
"proc-macro2",
|
|
785
|
+
"quote",
|
|
786
|
+
"syn",
|
|
787
|
+
]
|
|
788
|
+
|
|
689
789
|
[[package]]
|
|
690
790
|
name = "toml"
|
|
691
791
|
version = "0.8.23"
|
|
@@ -914,8 +1014,37 @@ dependencies = [
|
|
|
914
1014
|
"syn",
|
|
915
1015
|
]
|
|
916
1016
|
|
|
1017
|
+
[[package]]
|
|
1018
|
+
name = "zip"
|
|
1019
|
+
version = "2.4.2"
|
|
1020
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1021
|
+
checksum = "fabe6324e908f85a1c52063ce7aa26b68dcb7eb6dbc83a2d148403c9bc3eba50"
|
|
1022
|
+
dependencies = [
|
|
1023
|
+
"arbitrary",
|
|
1024
|
+
"crc32fast",
|
|
1025
|
+
"crossbeam-utils",
|
|
1026
|
+
"displaydoc",
|
|
1027
|
+
"flate2",
|
|
1028
|
+
"indexmap",
|
|
1029
|
+
"memchr",
|
|
1030
|
+
"thiserror 2.0.18",
|
|
1031
|
+
"zopfli",
|
|
1032
|
+
]
|
|
1033
|
+
|
|
917
1034
|
[[package]]
|
|
918
1035
|
name = "zmij"
|
|
919
1036
|
version = "1.0.21"
|
|
920
1037
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
921
1038
|
checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
|
|
1039
|
+
|
|
1040
|
+
[[package]]
|
|
1041
|
+
name = "zopfli"
|
|
1042
|
+
version = "0.8.3"
|
|
1043
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1044
|
+
checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249"
|
|
1045
|
+
dependencies = [
|
|
1046
|
+
"bumpalo",
|
|
1047
|
+
"crc32fast",
|
|
1048
|
+
"log",
|
|
1049
|
+
"simd-adler32",
|
|
1050
|
+
]
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "dumpling"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.7.0-beta"
|
|
4
4
|
edition = "2021"
|
|
5
|
+
license = "MIT"
|
|
6
|
+
authors = ["Andy Babic"]
|
|
5
7
|
readme = "README.md"
|
|
6
8
|
|
|
7
9
|
[dependencies]
|
|
@@ -19,3 +21,5 @@ chrono = { version = "0.4" }
|
|
|
19
21
|
lazy_static = "1"
|
|
20
22
|
fake = { version = "4", features = ["derive"] }
|
|
21
23
|
rand = "0.9"
|
|
24
|
+
flate2 = "1"
|
|
25
|
+
zip = { version = "2", default-features = false, features = ["deflate"] }
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Andy Babic
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|