pyvegh 0.5.0__tar.gz → 0.7.0__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.
@@ -0,0 +1,55 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # rust-clippy is a tool that runs a bunch of lints to catch common
6
+ # mistakes in your Rust code and help improve your Rust code.
7
+ # More details at https://github.com/rust-lang/rust-clippy
8
+ # and https://rust-lang.github.io/rust-clippy/
9
+
10
+ name: rust-clippy analyze
11
+
12
+ on:
13
+ push:
14
+ branches: [ "main" ]
15
+ pull_request:
16
+ # The branches below must be a subset of the branches above
17
+ branches: [ "main" ]
18
+ schedule:
19
+ - cron: '32 11 * * 4'
20
+
21
+ jobs:
22
+ rust-clippy-analyze:
23
+ name: Run rust-clippy analyzing
24
+ runs-on: ubuntu-latest
25
+ permissions:
26
+ contents: read
27
+ security-events: write
28
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
29
+ steps:
30
+ - name: Checkout code
31
+ uses: actions/checkout@v4
32
+
33
+ - name: Install Rust toolchain
34
+ uses: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af #@v1
35
+ with:
36
+ profile: minimal
37
+ toolchain: stable
38
+ components: clippy
39
+ override: true
40
+
41
+ - name: Install required cargo
42
+ run: cargo install clippy-sarif sarif-fmt
43
+
44
+ - name: Run rust-clippy
45
+ run:
46
+ cargo clippy
47
+ --all-features
48
+ --message-format=json | clippy-sarif | tee rust-clippy-results.sarif | sarif-fmt
49
+ continue-on-error: true
50
+
51
+ - name: Upload analysis results to GitHub
52
+ uses: github/codeql-action/upload-sarif@v3
53
+ with:
54
+ sarif_file: rust-clippy-results.sarif
55
+ wait-for-processing: true
@@ -1,6 +1,5 @@
1
1
  # Rust
2
2
  /target
3
- Cargo.lock
4
3
  **/*.rs.bk
5
4
 
6
5
  # Python
@@ -44,4 +43,5 @@ venv.bak/
44
43
  # Internal
45
44
  *.vegh
46
45
  .veghcache/
47
- .veghhooks.json
46
+ .veghhooks.json
47
+ *.xml
@@ -44,6 +44,15 @@ version = "1.5.0"
44
44
  source = "registry+https://github.com/rust-lang/crates.io-index"
45
45
  checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
46
46
 
47
+ [[package]]
48
+ name = "bincode"
49
+ version = "1.3.3"
50
+ source = "registry+https://github.com/rust-lang/crates.io-index"
51
+ checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
52
+ dependencies = [
53
+ "serde",
54
+ ]
55
+
47
56
  [[package]]
48
57
  name = "bitflags"
49
58
  version = "2.10.0"
@@ -83,9 +92,9 @@ checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
83
92
 
84
93
  [[package]]
85
94
  name = "cc"
86
- version = "1.2.50"
95
+ version = "1.2.51"
87
96
  source = "registry+https://github.com/rust-lang/crates.io-index"
88
- checksum = "9f50d563227a1c37cc0a263f64eca3334388c01c5e4c4861a9def205c614383c"
97
+ checksum = "7a0aeaff4ff1a90589618835a598e545176939b97874f7abc7851caa0618f203"
89
98
  dependencies = [
90
99
  "find-msvc-tools",
91
100
  "jobserver",
@@ -108,10 +117,24 @@ dependencies = [
108
117
  "iana-time-zone",
109
118
  "js-sys",
110
119
  "num-traits",
120
+ "serde",
111
121
  "wasm-bindgen",
112
122
  "windows-link",
113
123
  ]
114
124
 
125
+ [[package]]
126
+ name = "console"
127
+ version = "0.16.2"
128
+ source = "registry+https://github.com/rust-lang/crates.io-index"
129
+ checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4"
130
+ dependencies = [
131
+ "encode_unicode",
132
+ "libc",
133
+ "once_cell",
134
+ "unicode-width",
135
+ "windows-sys 0.61.2",
136
+ ]
137
+
115
138
  [[package]]
116
139
  name = "constant_time_eq"
117
140
  version = "0.3.1"
@@ -124,6 +147,15 @@ version = "0.8.7"
124
147
  source = "registry+https://github.com/rust-lang/crates.io-index"
125
148
  checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
126
149
 
150
+ [[package]]
151
+ name = "crossbeam-channel"
152
+ version = "0.5.15"
153
+ source = "registry+https://github.com/rust-lang/crates.io-index"
154
+ checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2"
155
+ dependencies = [
156
+ "crossbeam-utils",
157
+ ]
158
+
127
159
  [[package]]
128
160
  name = "crossbeam-deque"
129
161
  version = "0.8.6"
@@ -149,6 +181,26 @@ version = "0.8.21"
149
181
  source = "registry+https://github.com/rust-lang/crates.io-index"
150
182
  checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
151
183
 
184
+ [[package]]
185
+ name = "dashmap"
186
+ version = "6.1.0"
187
+ source = "registry+https://github.com/rust-lang/crates.io-index"
188
+ checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf"
189
+ dependencies = [
190
+ "cfg-if",
191
+ "crossbeam-utils",
192
+ "hashbrown",
193
+ "lock_api",
194
+ "once_cell",
195
+ "parking_lot_core",
196
+ ]
197
+
198
+ [[package]]
199
+ name = "encode_unicode"
200
+ version = "1.0.0"
201
+ source = "registry+https://github.com/rust-lang/crates.io-index"
202
+ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
203
+
152
204
  [[package]]
153
205
  name = "errno"
154
206
  version = "0.3.14"
@@ -159,6 +211,12 @@ dependencies = [
159
211
  "windows-sys 0.61.2",
160
212
  ]
161
213
 
214
+ [[package]]
215
+ name = "fastcdc"
216
+ version = "3.2.1"
217
+ source = "registry+https://github.com/rust-lang/crates.io-index"
218
+ checksum = "bf51ceb43e96afbfe4dd5c6f6082af5dfd60e220820b8123792d61963f2ce6bc"
219
+
162
220
  [[package]]
163
221
  name = "filetime"
164
222
  version = "0.2.26"
@@ -173,9 +231,9 @@ dependencies = [
173
231
 
174
232
  [[package]]
175
233
  name = "find-msvc-tools"
176
- version = "0.1.5"
234
+ version = "0.1.6"
177
235
  source = "registry+https://github.com/rust-lang/crates.io-index"
178
- checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844"
236
+ checksum = "645cbb3a84e60b7531617d5ae4e57f7e27308f6445f5abf653209ea76dec8dff"
179
237
 
180
238
  [[package]]
181
239
  name = "getrandom"
@@ -202,6 +260,12 @@ dependencies = [
202
260
  "regex-syntax",
203
261
  ]
204
262
 
263
+ [[package]]
264
+ name = "hashbrown"
265
+ version = "0.14.5"
266
+ source = "registry+https://github.com/rust-lang/crates.io-index"
267
+ checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
268
+
205
269
  [[package]]
206
270
  name = "heck"
207
271
  version = "0.5.0"
@@ -254,6 +318,19 @@ dependencies = [
254
318
  "winapi-util",
255
319
  ]
256
320
 
321
+ [[package]]
322
+ name = "indicatif"
323
+ version = "0.18.3"
324
+ source = "registry+https://github.com/rust-lang/crates.io-index"
325
+ checksum = "9375e112e4b463ec1b1c6c011953545c65a30164fbab5b581df32b3abf0dcb88"
326
+ dependencies = [
327
+ "console",
328
+ "portable-atomic",
329
+ "unicode-width",
330
+ "unit-prefix",
331
+ "web-time",
332
+ ]
333
+
257
334
  [[package]]
258
335
  name = "indoc"
259
336
  version = "2.0.7"
@@ -265,9 +342,9 @@ dependencies = [
265
342
 
266
343
  [[package]]
267
344
  name = "itoa"
268
- version = "1.0.16"
345
+ version = "1.0.17"
269
346
  source = "registry+https://github.com/rust-lang/crates.io-index"
270
- checksum = "7ee5b5339afb4c41626dde77b7a611bd4f2c202b897852b4bcf5d03eddc61010"
347
+ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
271
348
 
272
349
  [[package]]
273
350
  name = "jobserver"
@@ -291,19 +368,19 @@ dependencies = [
291
368
 
292
369
  [[package]]
293
370
  name = "libc"
294
- version = "0.2.178"
371
+ version = "0.2.179"
295
372
  source = "registry+https://github.com/rust-lang/crates.io-index"
296
- checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091"
373
+ checksum = "c5a2d376baa530d1238d133232d15e239abad80d05838b4b59354e5268af431f"
297
374
 
298
375
  [[package]]
299
376
  name = "libredox"
300
- version = "0.1.11"
377
+ version = "0.1.12"
301
378
  source = "registry+https://github.com/rust-lang/crates.io-index"
302
- checksum = "df15f6eac291ed1cf25865b1ee60399f57e7c227e7f51bdbd4c5270396a9ed50"
379
+ checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
303
380
  dependencies = [
304
381
  "bitflags",
305
382
  "libc",
306
- "redox_syscall",
383
+ "redox_syscall 0.7.0",
307
384
  ]
308
385
 
309
386
  [[package]]
@@ -312,6 +389,15 @@ version = "0.11.0"
312
389
  source = "registry+https://github.com/rust-lang/crates.io-index"
313
390
  checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
314
391
 
392
+ [[package]]
393
+ name = "lock_api"
394
+ version = "0.4.14"
395
+ source = "registry+https://github.com/rust-lang/crates.io-index"
396
+ checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
397
+ dependencies = [
398
+ "scopeguard",
399
+ ]
400
+
315
401
  [[package]]
316
402
  name = "log"
317
403
  version = "0.4.29"
@@ -357,6 +443,19 @@ version = "1.21.3"
357
443
  source = "registry+https://github.com/rust-lang/crates.io-index"
358
444
  checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
359
445
 
446
+ [[package]]
447
+ name = "parking_lot_core"
448
+ version = "0.9.12"
449
+ source = "registry+https://github.com/rust-lang/crates.io-index"
450
+ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
451
+ dependencies = [
452
+ "cfg-if",
453
+ "libc",
454
+ "redox_syscall 0.5.18",
455
+ "smallvec",
456
+ "windows-link",
457
+ ]
458
+
360
459
  [[package]]
361
460
  name = "pkg-config"
362
461
  version = "0.3.32"
@@ -365,15 +464,15 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
365
464
 
366
465
  [[package]]
367
466
  name = "portable-atomic"
368
- version = "1.12.0"
467
+ version = "1.13.0"
369
468
  source = "registry+https://github.com/rust-lang/crates.io-index"
370
- checksum = "f59e70c4aef1e55797c2e8fd94a4f2a973fc972cfde0e0b05f683667b0cd39dd"
469
+ checksum = "f89776e4d69bb58bc6993e99ffa1d11f228b839984854c7daeb5d37f87cbe950"
371
470
 
372
471
  [[package]]
373
472
  name = "proc-macro2"
374
- version = "1.0.103"
473
+ version = "1.0.105"
375
474
  source = "registry+https://github.com/rust-lang/crates.io-index"
376
- checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8"
475
+ checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
377
476
  dependencies = [
378
477
  "unicode-ident",
379
478
  ]
@@ -441,15 +540,21 @@ dependencies = [
441
540
 
442
541
  [[package]]
443
542
  name = "pyvegh"
444
- version = "0.5.0"
543
+ version = "0.7.0"
445
544
  dependencies = [
446
545
  "anyhow",
546
+ "bincode",
447
547
  "blake3",
448
548
  "chrono",
549
+ "crossbeam-channel",
550
+ "dashmap",
551
+ "fastcdc",
449
552
  "hex",
450
553
  "ignore",
554
+ "indicatif",
451
555
  "memmap2",
452
556
  "pyo3",
557
+ "redb",
453
558
  "serde",
454
559
  "serde_json",
455
560
  "tar",
@@ -458,9 +563,9 @@ dependencies = [
458
563
 
459
564
  [[package]]
460
565
  name = "quote"
461
- version = "1.0.42"
566
+ version = "1.0.43"
462
567
  source = "registry+https://github.com/rust-lang/crates.io-index"
463
- checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f"
568
+ checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
464
569
  dependencies = [
465
570
  "proc-macro2",
466
571
  ]
@@ -481,11 +586,29 @@ dependencies = [
481
586
  "crossbeam-utils",
482
587
  ]
483
588
 
589
+ [[package]]
590
+ name = "redb"
591
+ version = "3.1.0"
592
+ source = "registry+https://github.com/rust-lang/crates.io-index"
593
+ checksum = "ae323eb086579a3769daa2c753bb96deb95993c534711e0dbe881b5192906a06"
594
+ dependencies = [
595
+ "libc",
596
+ ]
597
+
598
+ [[package]]
599
+ name = "redox_syscall"
600
+ version = "0.5.18"
601
+ source = "registry+https://github.com/rust-lang/crates.io-index"
602
+ checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
603
+ dependencies = [
604
+ "bitflags",
605
+ ]
606
+
484
607
  [[package]]
485
608
  name = "redox_syscall"
486
- version = "0.6.0"
609
+ version = "0.7.0"
487
610
  source = "registry+https://github.com/rust-lang/crates.io-index"
488
- checksum = "ec96166dafa0886eb81fe1c0a388bece180fbef2135f97c1e2cf8302e74b43b5"
611
+ checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27"
489
612
  dependencies = [
490
613
  "bitflags",
491
614
  ]
@@ -535,6 +658,12 @@ dependencies = [
535
658
  "winapi-util",
536
659
  ]
537
660
 
661
+ [[package]]
662
+ name = "scopeguard"
663
+ version = "1.2.0"
664
+ source = "registry+https://github.com/rust-lang/crates.io-index"
665
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
666
+
538
667
  [[package]]
539
668
  name = "serde"
540
669
  version = "1.0.228"
@@ -567,9 +696,9 @@ dependencies = [
567
696
 
568
697
  [[package]]
569
698
  name = "serde_json"
570
- version = "1.0.147"
699
+ version = "1.0.149"
571
700
  source = "registry+https://github.com/rust-lang/crates.io-index"
572
- checksum = "6af14725505314343e673e9ecb7cd7e8a36aa9791eb936235a3567cc31447ae4"
701
+ checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
573
702
  dependencies = [
574
703
  "itoa",
575
704
  "memchr",
@@ -584,11 +713,17 @@ version = "1.3.0"
584
713
  source = "registry+https://github.com/rust-lang/crates.io-index"
585
714
  checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
586
715
 
716
+ [[package]]
717
+ name = "smallvec"
718
+ version = "1.15.1"
719
+ source = "registry+https://github.com/rust-lang/crates.io-index"
720
+ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
721
+
587
722
  [[package]]
588
723
  name = "syn"
589
- version = "2.0.111"
724
+ version = "2.0.114"
590
725
  source = "registry+https://github.com/rust-lang/crates.io-index"
591
- checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87"
726
+ checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
592
727
  dependencies = [
593
728
  "proc-macro2",
594
729
  "quote",
@@ -618,12 +753,24 @@ version = "1.0.22"
618
753
  source = "registry+https://github.com/rust-lang/crates.io-index"
619
754
  checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
620
755
 
756
+ [[package]]
757
+ name = "unicode-width"
758
+ version = "0.2.2"
759
+ source = "registry+https://github.com/rust-lang/crates.io-index"
760
+ checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
761
+
621
762
  [[package]]
622
763
  name = "unindent"
623
764
  version = "0.2.4"
624
765
  source = "registry+https://github.com/rust-lang/crates.io-index"
625
766
  checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
626
767
 
768
+ [[package]]
769
+ name = "unit-prefix"
770
+ version = "0.5.2"
771
+ source = "registry+https://github.com/rust-lang/crates.io-index"
772
+ checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3"
773
+
627
774
  [[package]]
628
775
  name = "walkdir"
629
776
  version = "2.5.0"
@@ -688,6 +835,16 @@ dependencies = [
688
835
  "unicode-ident",
689
836
  ]
690
837
 
838
+ [[package]]
839
+ name = "web-time"
840
+ version = "1.1.0"
841
+ source = "registry+https://github.com/rust-lang/crates.io-index"
842
+ checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb"
843
+ dependencies = [
844
+ "js-sys",
845
+ "wasm-bindgen",
846
+ ]
847
+
691
848
  [[package]]
692
849
  name = "winapi-util"
693
850
  version = "0.1.11"
@@ -857,9 +1014,9 @@ dependencies = [
857
1014
 
858
1015
  [[package]]
859
1016
  name = "zmij"
860
- version = "0.1.9"
1017
+ version = "1.0.12"
861
1018
  source = "registry+https://github.com/rust-lang/crates.io-index"
862
- checksum = "d0095ecd462946aa3927d9297b63ef82fb9a5316d7a37d134eeb36e58228615a"
1019
+ checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8"
863
1020
 
864
1021
  [[package]]
865
1022
  name = "zstd"
@@ -0,0 +1,37 @@
1
+ [package]
2
+ name = "pyvegh"
3
+ version = "0.7.0"
4
+ edition = "2024"
5
+ authors = ["CodeTease"]
6
+ readme = "README.md"
7
+
8
+ [lib]
9
+ name = "pyvegh_core"
10
+ crate-type = ["cdylib"]
11
+
12
+ [dependencies]
13
+ pyo3 = { version = "0.27", features = ["extension-module", "abi3-py310"] }
14
+
15
+ # Core Logic Deps (Synced from Vegh 0.4.0)
16
+ tar = "0.4"
17
+ zstd = { version = "0.13", features = ["zstdmt"] }
18
+ ignore = "0.4"
19
+
20
+ # Hashing & CDC
21
+ blake3 = { version = "1.8", features = ["rayon", "mmap"] }
22
+ hex = "0.4"
23
+ memmap2 = "0.9"
24
+ fastcdc = "3.2.1" # Added for CDC support
25
+
26
+ # Storage & Cache
27
+ redb = "3.1.0" # Migrated from JSON cache to Embedded DB
28
+ bincode = "1.3" # Struct serialization
29
+ dashmap = "6.1.0" # Concurrent Map for Deduplication
30
+
31
+ # Utilities
32
+ anyhow = "1.0"
33
+ serde = { version = "1.0", features = ["derive"] }
34
+ serde_json = "1.0"
35
+ chrono = { version = "0.4", features = ["serde"] }
36
+ crossbeam-channel = "0.5" # Pipeline messaging
37
+ indicatif = "0.18"
@@ -1,3 +1,31 @@
1
+ Metadata-Version: 2.4
2
+ Name: pyvegh
3
+ Version: 0.7.0
4
+ Classifier: Programming Language :: Python :: 3.10
5
+ Classifier: Programming Language :: Python :: 3.11
6
+ Classifier: Programming Language :: Python :: 3.12
7
+ Classifier: Programming Language :: Python :: 3.13
8
+ Classifier: Programming Language :: Python :: 3.14
9
+ Classifier: Programming Language :: Python :: 3.15
10
+ Classifier: Programming Language :: Python :: 3 :: Only
11
+ Classifier: Programming Language :: Rust
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Topic :: Software Development :: Libraries
15
+ Classifier: Topic :: Utilities
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Development Status :: 5 - Production/Stable
18
+ Requires-Dist: typer>=0.20.0
19
+ Requires-Dist: rich>=14.2.0
20
+ Requires-Dist: shellingham>=1.5.4
21
+ Requires-Dist: requests>=2.32.5
22
+ License-File: LICENSE
23
+ Summary: Python bindings for Vegh - The Snapshot Tool.
24
+ Keywords: snapshot,backup,rust,binding,loc,analytics
25
+ Author: CodeTease
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
28
+
1
29
  # 🥬 PyVegh
2
30
 
3
31
  **PyVegh** is the official Python binding for the Vegh snapshot engine, developed by **CodeTease**.
@@ -9,7 +37,8 @@ It delivers the raw performance of Rust (Zstd multithreaded compression, Tar arc
9
37
  ## Features
10
38
 
11
39
  * **Blazing Fast:** Core logic is implemented in Rust using PyO3, utilizing **Zstd Multithreading** and the next-gen **Blake3** hashing algorithm.
12
- * **Analytics Dashboard:** Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard—no extraction required.
40
+ * **AI-Ready Context:** Generate clean, token-optimized XML prompts for ChatGPT/Claude in milliseconds.
41
+ * **Analytics Dashboard:** Instantly visualize your project's Lines of Code (LOC) with a beautiful terminal dashboard, no extraction required.
13
42
  * **Dry-Run Mode:** Simulate snapshot creation to check file sizes and detect sensitive data risks before packing.
14
43
  * **Integrity v2:** Verify data integrity at lightning speed with **Blake3** and inspect metadata (author, timestamp, tool version) without unpacking.
15
44
  * **Smart Upload:** Built-in `send` command supporting concurrent **Chunked Uploads** for large files.
@@ -22,7 +51,7 @@ It delivers the raw performance of Rust (Zstd multithreaded compression, Tar arc
22
51
  Install directly from PyPI:
23
52
  ```bash
24
53
  pip install pyvegh
25
- ````
54
+ ```
26
55
 
27
56
  Or build from source (requires Rust):
28
57
 
@@ -62,15 +91,49 @@ vegh snap ./my-project --output backup.vegh
62
91
  vegh snap ./my-project --dry-run
63
92
  ```
64
93
 
65
- ### 3\. Analytics
94
+ ### 3\. LOC
66
95
 
67
- View the CodeTease Analytics Dashboard to break down your project by language and lines of code.
96
+ View the Analytics Dashboard to break down your project by language and lines of code.
68
97
 
69
98
  ```bash
70
99
  vegh loc backup.vegh
100
+
101
+ # Show Source Lines of Code (SLOC) instead of total LOC
102
+ # Excludes blank lines and comments
103
+ vegh loc backup.vegh --sloc
71
104
  ```
72
105
 
73
- ### 4\. Inspect & Verify
106
+ ### 4\. Prompt
107
+
108
+ Generate a structured XML context of your codebase to feed directly into ChatGPT, Claude, or Gemini.
109
+ ```bash
110
+ # Generate XML context to stdout
111
+ vegh prompt .
112
+
113
+ # Clean Mode (Recommended):
114
+ # Removes lock files (package-lock.json, Cargo.lock), logs, secrets and other unnecessary files.
115
+ vegh prompt . --clean
116
+
117
+ # Copy to Clipboard (One-shot):
118
+ vegh prompt . --clean --copy
119
+
120
+ # Save to file
121
+ vegh prompt . --clean --output context.xml
122
+ ```
123
+
124
+ ### 5\. Prune
125
+
126
+ Clean up old snapshots to free disk space.
127
+
128
+ ```bash
129
+ # Keep only the 5 most recent snapshots in the current directory
130
+ vegh prune --keep 5
131
+
132
+ # Force clean without confirmation (useful for CI/CD)
133
+ vegh prune --keep 1 --force
134
+ ```
135
+
136
+ ### 6\. Check
74
137
 
75
138
  Check file integrity (Blake3) and view embedded metadata.
76
139
 
@@ -78,7 +141,7 @@ Check file integrity (Blake3) and view embedded metadata.
78
141
  vegh check backup.vegh
79
142
  ```
80
143
 
81
- ### 5\. Restore
144
+ ### 7\. Restore
82
145
 
83
146
  Restore the snapshot to a target directory. Supports **Partial Restore**.
84
147
 
@@ -93,7 +156,7 @@ vegh restore backup.vegh ./restored-folder --path src/main.rs --path config/
93
156
  vegh restore backup.vegh ./restored-folder --flatten
94
157
  ```
95
158
 
96
- ### 6\. Peek & Diff
159
+ ### 8\. Cat & Diff
97
160
 
98
161
  Inspect content without extracting.
99
162
 
@@ -108,16 +171,16 @@ vegh cat backup.vegh image.png --raw > extracted_image.png
108
171
  vegh diff backup.vegh ./current-project
109
172
  ```
110
173
 
111
- ### 7\. Send
174
+ ### 9\. Send
112
175
 
113
- Send the snapshot to a remote server. PyVegh now supports **Chunked Uploads** for reliability.
176
+ Send the snapshot to a remote server. Supports **Chunked Uploads** for reliability.
114
177
 
115
178
  ```bash
116
179
  # Auto-detects if chunking is needed, or force it:
117
180
  vegh send backup.vegh --force-chunk
118
181
  ```
119
182
 
120
- ### 8\. Doctor
183
+ ### 10\. Doctor
121
184
 
122
185
  Check your environment and installation health.
123
186
 
@@ -125,7 +188,7 @@ Check your environment and installation health.
125
188
  vegh doctor
126
189
  ```
127
190
 
128
- ### 9\. Hooks example
191
+ ### 11\. Hooks example
129
192
 
130
193
  Create a `.veghhooks.json` in your workspace.
131
194
 
@@ -175,3 +238,4 @@ restore_snap("backup.vegh", "dest_folder")
175
238
  ## License
176
239
 
177
240
  This project is under the **MIT License**.
241
+