stegano-core 0.1.3__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.
Files changed (58) hide show
  1. stegano_core-0.1.3/.DS_Store +0 -0
  2. stegano_core-0.1.3/.github/workflows/publish.yml +67 -0
  3. stegano_core-0.1.3/.gitignore +25 -0
  4. stegano_core-0.1.3/ARI_RENKLI.jpg +0 -0
  5. stegano_core-0.1.3/Cargo.lock +473 -0
  6. stegano_core-0.1.3/Cargo.toml +46 -0
  7. stegano_core-0.1.3/PKG-INFO +13 -0
  8. stegano_core-0.1.3/academic_analysis_v2.py +1342 -0
  9. stegano_core-0.1.3/deney_sonuclari.csv +11049 -0
  10. stegano_core-0.1.3/extracted.bin +1 -0
  11. stegano_core-0.1.3/inspection_result.png +0 -0
  12. stegano_core-0.1.3/main.py +318 -0
  13. stegano_core-0.1.3/payload_sweep.py +299 -0
  14. stegano_core-0.1.3/payload_sweep_results.csv +1 -0
  15. stegano_core-0.1.3/pyproject.toml +47 -0
  16. stegano_core-0.1.3/requirements.txt +8 -0
  17. stegano_core-0.1.3/results/academic_summary_table.csv +2 -0
  18. stegano_core-0.1.3/results/edge_cases_analysis.txt +68 -0
  19. stegano_core-0.1.3/results/fig_01_psnr_distribution.png +0 -0
  20. stegano_core-0.1.3/results/fig_02_ssim_analysis.png +0 -0
  21. stegano_core-0.1.3/results/fig_03_time_complexity.png +0 -0
  22. stegano_core-0.1.3/results/fig_04_payload_tradeoff.png +0 -0
  23. stegano_core-0.1.3/results/fig_05_compression_vs_quality.png +0 -0
  24. stegano_core-0.1.3/results/fig_06_bpp_quality_tradeoff.png +0 -0
  25. stegano_core-0.1.3/results/fig_07_steganalysis_resistance.png +0 -0
  26. stegano_core-0.1.3/results/fig_08_method_comparison.png +0 -0
  27. stegano_core-0.1.3/results/fig_09_stability_line.png +0 -0
  28. stegano_core-0.1.3/results/fig_10_radar_comparison.png +0 -0
  29. stegano_core-0.1.3/results/fig_11_ablation_study.png +0 -0
  30. stegano_core-0.1.3/results_demo/academic_summary_table.csv +5 -0
  31. stegano_core-0.1.3/results_demo/edge_cases_analysis.txt +179 -0
  32. stegano_core-0.1.3/results_demo/fig_01_psnr_distribution.png +0 -0
  33. stegano_core-0.1.3/results_demo/fig_02_ssim_analysis.png +0 -0
  34. stegano_core-0.1.3/results_demo/fig_03_time_complexity.png +0 -0
  35. stegano_core-0.1.3/results_demo/fig_04_payload_tradeoff.png +0 -0
  36. stegano_core-0.1.3/results_demo/fig_05_compression_vs_quality.png +0 -0
  37. stegano_core-0.1.3/results_demo/stego_payload_visualization.png +0 -0
  38. stegano_core-0.1.3/results_demo/stego_visual_comparison.png +0 -0
  39. stegano_core-0.1.3/rust_src/lib.rs +695 -0
  40. stegano_core-0.1.3/src/__init__.py +0 -0
  41. stegano_core-0.1.3/src/abc_optimizer.py +160 -0
  42. stegano_core-0.1.3/src/dataloader.py +83 -0
  43. stegano_core-0.1.3/src/evaluator.py +55 -0
  44. stegano_core-0.1.3/src/quadtree.py +54 -0
  45. stegano_core-0.1.3/stegano_app/STEGANO_1.ansi.txt +25 -0
  46. stegano_core-0.1.3/stegano_app/__init__.py +7 -0
  47. stegano_core-0.1.3/stegano_app/cli.py +115 -0
  48. stegano_core-0.1.3/stegano_app/metrics.py +15 -0
  49. stegano_core-0.1.3/stegano_app/payload_manager.py +123 -0
  50. stegano_core-0.1.3/stegano_app/product_cli.py +1460 -0
  51. stegano_core-0.1.3/stegano_app/product_visualize.py +268 -0
  52. stegano_core-0.1.3/stegano_core/__init__.py +149 -0
  53. stegano_core-0.1.3/stego.pgm +3935 -2
  54. stegano_core-0.1.3/test_benchmark.csv +3 -0
  55. stegano_core-0.1.3/test_cli_flags.sh +97 -0
  56. stegano_core-0.1.3/test_sweep.csv +10 -0
  57. stegano_core-0.1.3/visualize_payload.py +409 -0
  58. stegano_core-0.1.3/visualize_stego.py +271 -0
Binary file
@@ -0,0 +1,67 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ jobs:
9
+ build-wheels:
10
+ name: Build wheels on ${{ matrix.os }}
11
+ runs-on: ${{ matrix.os }}
12
+ strategy:
13
+ matrix:
14
+ os: [ubuntu-latest, windows-latest, macos-latest]
15
+
16
+ steps:
17
+ - uses: actions/checkout@v4
18
+
19
+ - name: Set up Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: '3.12'
23
+
24
+ - name: Build wheels
25
+ uses: PyO3/maturin-action@v1
26
+ with:
27
+ args: --release --out dist
28
+
29
+ - name: Upload wheels
30
+ uses: actions/upload-artifact@v4
31
+ with:
32
+ name: wheels-${{ matrix.os }}
33
+ path: dist
34
+
35
+ sdist:
36
+ name: Build source distribution
37
+ runs-on: ubuntu-latest
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+
41
+ - name: Build sdist
42
+ uses: PyO3/maturin-action@v1
43
+ with:
44
+ command: sdist
45
+ args: --out dist
46
+
47
+ - name: Upload sdist
48
+ uses: actions/upload-artifact@v4
49
+ with:
50
+ name: wheels-sdist
51
+ path: dist
52
+
53
+ publish:
54
+ name: Publish to PyPI
55
+ needs: [build-wheels, sdist]
56
+ runs-on: ubuntu-latest
57
+ steps:
58
+ - uses: actions/download-artifact@v4
59
+ with:
60
+ pattern: wheels-*
61
+ merge-multiple: true
62
+ path: dist
63
+
64
+ - name: Publish to PyPI
65
+ uses: pypa/gh-action-pypi-publish@release/v1
66
+ with:
67
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,25 @@
1
+ # --- Python ---
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+ .venv/
6
+ venv/
7
+ ENV/
8
+ .env
9
+ .pytest_cache/
10
+
11
+ # --- Rust / PyO3 ---
12
+ target/
13
+ *.so
14
+ *.pyd
15
+
16
+ # --- Project Specific ---
17
+ data/
18
+ datasets/
19
+ BOSSbase_1.01/
20
+
21
+
22
+ # IDE Ayarları
23
+ .idea/
24
+ .vscode/
25
+ .DS_Store
Binary file
@@ -0,0 +1,473 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "autocfg"
7
+ version = "1.5.0"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
10
+
11
+ [[package]]
12
+ name = "bitflags"
13
+ version = "2.11.0"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af"
16
+
17
+ [[package]]
18
+ name = "block-buffer"
19
+ version = "0.10.4"
20
+ source = "registry+https://github.com/rust-lang/crates.io-index"
21
+ checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
22
+ dependencies = [
23
+ "generic-array",
24
+ ]
25
+
26
+ [[package]]
27
+ name = "cfg-if"
28
+ version = "1.0.4"
29
+ source = "registry+https://github.com/rust-lang/crates.io-index"
30
+ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
31
+
32
+ [[package]]
33
+ name = "cpufeatures"
34
+ version = "0.2.17"
35
+ source = "registry+https://github.com/rust-lang/crates.io-index"
36
+ checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280"
37
+ dependencies = [
38
+ "libc",
39
+ ]
40
+
41
+ [[package]]
42
+ name = "crypto-common"
43
+ version = "0.1.7"
44
+ source = "registry+https://github.com/rust-lang/crates.io-index"
45
+ checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
46
+ dependencies = [
47
+ "generic-array",
48
+ "typenum",
49
+ ]
50
+
51
+ [[package]]
52
+ name = "digest"
53
+ version = "0.10.7"
54
+ source = "registry+https://github.com/rust-lang/crates.io-index"
55
+ checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
56
+ dependencies = [
57
+ "block-buffer",
58
+ "crypto-common",
59
+ ]
60
+
61
+ [[package]]
62
+ name = "generic-array"
63
+ version = "0.14.7"
64
+ source = "registry+https://github.com/rust-lang/crates.io-index"
65
+ checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
66
+ dependencies = [
67
+ "typenum",
68
+ "version_check",
69
+ ]
70
+
71
+ [[package]]
72
+ name = "getrandom"
73
+ version = "0.2.17"
74
+ source = "registry+https://github.com/rust-lang/crates.io-index"
75
+ checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
76
+ dependencies = [
77
+ "cfg-if",
78
+ "libc",
79
+ "wasi",
80
+ ]
81
+
82
+ [[package]]
83
+ name = "heck"
84
+ version = "0.4.1"
85
+ source = "registry+https://github.com/rust-lang/crates.io-index"
86
+ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
87
+
88
+ [[package]]
89
+ name = "indoc"
90
+ version = "2.0.7"
91
+ source = "registry+https://github.com/rust-lang/crates.io-index"
92
+ checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
93
+ dependencies = [
94
+ "rustversion",
95
+ ]
96
+
97
+ [[package]]
98
+ name = "libc"
99
+ version = "0.2.182"
100
+ source = "registry+https://github.com/rust-lang/crates.io-index"
101
+ checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112"
102
+
103
+ [[package]]
104
+ name = "lock_api"
105
+ version = "0.4.14"
106
+ source = "registry+https://github.com/rust-lang/crates.io-index"
107
+ checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
108
+ dependencies = [
109
+ "scopeguard",
110
+ ]
111
+
112
+ [[package]]
113
+ name = "matrixmultiply"
114
+ version = "0.3.10"
115
+ source = "registry+https://github.com/rust-lang/crates.io-index"
116
+ checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
117
+ dependencies = [
118
+ "autocfg",
119
+ "rawpointer",
120
+ ]
121
+
122
+ [[package]]
123
+ name = "memoffset"
124
+ version = "0.9.1"
125
+ source = "registry+https://github.com/rust-lang/crates.io-index"
126
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
127
+ dependencies = [
128
+ "autocfg",
129
+ ]
130
+
131
+ [[package]]
132
+ name = "ndarray"
133
+ version = "0.15.6"
134
+ source = "registry+https://github.com/rust-lang/crates.io-index"
135
+ checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32"
136
+ dependencies = [
137
+ "matrixmultiply",
138
+ "num-complex",
139
+ "num-integer",
140
+ "num-traits",
141
+ "rawpointer",
142
+ ]
143
+
144
+ [[package]]
145
+ name = "num-complex"
146
+ version = "0.4.6"
147
+ source = "registry+https://github.com/rust-lang/crates.io-index"
148
+ checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
149
+ dependencies = [
150
+ "num-traits",
151
+ ]
152
+
153
+ [[package]]
154
+ name = "num-integer"
155
+ version = "0.1.46"
156
+ source = "registry+https://github.com/rust-lang/crates.io-index"
157
+ checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
158
+ dependencies = [
159
+ "num-traits",
160
+ ]
161
+
162
+ [[package]]
163
+ name = "num-traits"
164
+ version = "0.2.19"
165
+ source = "registry+https://github.com/rust-lang/crates.io-index"
166
+ checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
167
+ dependencies = [
168
+ "autocfg",
169
+ ]
170
+
171
+ [[package]]
172
+ name = "numpy"
173
+ version = "0.21.0"
174
+ source = "registry+https://github.com/rust-lang/crates.io-index"
175
+ checksum = "ec170733ca37175f5d75a5bea5911d6ff45d2cd52849ce98b685394e4f2f37f4"
176
+ dependencies = [
177
+ "libc",
178
+ "ndarray",
179
+ "num-complex",
180
+ "num-integer",
181
+ "num-traits",
182
+ "pyo3",
183
+ "rustc-hash",
184
+ ]
185
+
186
+ [[package]]
187
+ name = "once_cell"
188
+ version = "1.21.3"
189
+ source = "registry+https://github.com/rust-lang/crates.io-index"
190
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
191
+
192
+ [[package]]
193
+ name = "parking_lot"
194
+ version = "0.12.5"
195
+ source = "registry+https://github.com/rust-lang/crates.io-index"
196
+ checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
197
+ dependencies = [
198
+ "lock_api",
199
+ "parking_lot_core",
200
+ ]
201
+
202
+ [[package]]
203
+ name = "parking_lot_core"
204
+ version = "0.9.12"
205
+ source = "registry+https://github.com/rust-lang/crates.io-index"
206
+ checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
207
+ dependencies = [
208
+ "cfg-if",
209
+ "libc",
210
+ "redox_syscall",
211
+ "smallvec",
212
+ "windows-link",
213
+ ]
214
+
215
+ [[package]]
216
+ name = "portable-atomic"
217
+ version = "1.13.1"
218
+ source = "registry+https://github.com/rust-lang/crates.io-index"
219
+ checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
220
+
221
+ [[package]]
222
+ name = "ppv-lite86"
223
+ version = "0.2.21"
224
+ source = "registry+https://github.com/rust-lang/crates.io-index"
225
+ checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9"
226
+ dependencies = [
227
+ "zerocopy",
228
+ ]
229
+
230
+ [[package]]
231
+ name = "proc-macro2"
232
+ version = "1.0.106"
233
+ source = "registry+https://github.com/rust-lang/crates.io-index"
234
+ checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
235
+ dependencies = [
236
+ "unicode-ident",
237
+ ]
238
+
239
+ [[package]]
240
+ name = "pyo3"
241
+ version = "0.21.2"
242
+ source = "registry+https://github.com/rust-lang/crates.io-index"
243
+ checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
244
+ dependencies = [
245
+ "cfg-if",
246
+ "indoc",
247
+ "libc",
248
+ "memoffset",
249
+ "parking_lot",
250
+ "portable-atomic",
251
+ "pyo3-build-config",
252
+ "pyo3-ffi",
253
+ "pyo3-macros",
254
+ "unindent",
255
+ ]
256
+
257
+ [[package]]
258
+ name = "pyo3-build-config"
259
+ version = "0.21.2"
260
+ source = "registry+https://github.com/rust-lang/crates.io-index"
261
+ checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
262
+ dependencies = [
263
+ "once_cell",
264
+ "target-lexicon",
265
+ ]
266
+
267
+ [[package]]
268
+ name = "pyo3-ffi"
269
+ version = "0.21.2"
270
+ source = "registry+https://github.com/rust-lang/crates.io-index"
271
+ checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
272
+ dependencies = [
273
+ "libc",
274
+ "pyo3-build-config",
275
+ ]
276
+
277
+ [[package]]
278
+ name = "pyo3-macros"
279
+ version = "0.21.2"
280
+ source = "registry+https://github.com/rust-lang/crates.io-index"
281
+ checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c"
282
+ dependencies = [
283
+ "proc-macro2",
284
+ "pyo3-macros-backend",
285
+ "quote",
286
+ "syn",
287
+ ]
288
+
289
+ [[package]]
290
+ name = "pyo3-macros-backend"
291
+ version = "0.21.2"
292
+ source = "registry+https://github.com/rust-lang/crates.io-index"
293
+ checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c"
294
+ dependencies = [
295
+ "heck",
296
+ "proc-macro2",
297
+ "pyo3-build-config",
298
+ "quote",
299
+ "syn",
300
+ ]
301
+
302
+ [[package]]
303
+ name = "quote"
304
+ version = "1.0.45"
305
+ source = "registry+https://github.com/rust-lang/crates.io-index"
306
+ checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
307
+ dependencies = [
308
+ "proc-macro2",
309
+ ]
310
+
311
+ [[package]]
312
+ name = "rand"
313
+ version = "0.8.5"
314
+ source = "registry+https://github.com/rust-lang/crates.io-index"
315
+ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
316
+ dependencies = [
317
+ "libc",
318
+ "rand_chacha",
319
+ "rand_core",
320
+ ]
321
+
322
+ [[package]]
323
+ name = "rand_chacha"
324
+ version = "0.3.1"
325
+ source = "registry+https://github.com/rust-lang/crates.io-index"
326
+ checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
327
+ dependencies = [
328
+ "ppv-lite86",
329
+ "rand_core",
330
+ ]
331
+
332
+ [[package]]
333
+ name = "rand_core"
334
+ version = "0.6.4"
335
+ source = "registry+https://github.com/rust-lang/crates.io-index"
336
+ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
337
+ dependencies = [
338
+ "getrandom",
339
+ ]
340
+
341
+ [[package]]
342
+ name = "rawpointer"
343
+ version = "0.2.1"
344
+ source = "registry+https://github.com/rust-lang/crates.io-index"
345
+ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
346
+
347
+ [[package]]
348
+ name = "redox_syscall"
349
+ version = "0.5.18"
350
+ source = "registry+https://github.com/rust-lang/crates.io-index"
351
+ checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
352
+ dependencies = [
353
+ "bitflags",
354
+ ]
355
+
356
+ [[package]]
357
+ name = "rustc-hash"
358
+ version = "1.1.0"
359
+ source = "registry+https://github.com/rust-lang/crates.io-index"
360
+ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
361
+
362
+ [[package]]
363
+ name = "rustversion"
364
+ version = "1.0.22"
365
+ source = "registry+https://github.com/rust-lang/crates.io-index"
366
+ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d"
367
+
368
+ [[package]]
369
+ name = "scopeguard"
370
+ version = "1.2.0"
371
+ source = "registry+https://github.com/rust-lang/crates.io-index"
372
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
373
+
374
+ [[package]]
375
+ name = "sha2"
376
+ version = "0.10.9"
377
+ source = "registry+https://github.com/rust-lang/crates.io-index"
378
+ checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283"
379
+ dependencies = [
380
+ "cfg-if",
381
+ "cpufeatures",
382
+ "digest",
383
+ ]
384
+
385
+ [[package]]
386
+ name = "smallvec"
387
+ version = "1.15.1"
388
+ source = "registry+https://github.com/rust-lang/crates.io-index"
389
+ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
390
+
391
+ [[package]]
392
+ name = "stegano_core"
393
+ version = "0.1.3"
394
+ dependencies = [
395
+ "ndarray",
396
+ "numpy",
397
+ "pyo3",
398
+ "rand",
399
+ "sha2",
400
+ ]
401
+
402
+ [[package]]
403
+ name = "syn"
404
+ version = "2.0.117"
405
+ source = "registry+https://github.com/rust-lang/crates.io-index"
406
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
407
+ dependencies = [
408
+ "proc-macro2",
409
+ "quote",
410
+ "unicode-ident",
411
+ ]
412
+
413
+ [[package]]
414
+ name = "target-lexicon"
415
+ version = "0.12.16"
416
+ source = "registry+https://github.com/rust-lang/crates.io-index"
417
+ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
418
+
419
+ [[package]]
420
+ name = "typenum"
421
+ version = "1.20.0"
422
+ source = "registry+https://github.com/rust-lang/crates.io-index"
423
+ checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de"
424
+
425
+ [[package]]
426
+ name = "unicode-ident"
427
+ version = "1.0.24"
428
+ source = "registry+https://github.com/rust-lang/crates.io-index"
429
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
430
+
431
+ [[package]]
432
+ name = "unindent"
433
+ version = "0.2.4"
434
+ source = "registry+https://github.com/rust-lang/crates.io-index"
435
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
436
+
437
+ [[package]]
438
+ name = "version_check"
439
+ version = "0.9.5"
440
+ source = "registry+https://github.com/rust-lang/crates.io-index"
441
+ checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
442
+
443
+ [[package]]
444
+ name = "wasi"
445
+ version = "0.11.1+wasi-snapshot-preview1"
446
+ source = "registry+https://github.com/rust-lang/crates.io-index"
447
+ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
448
+
449
+ [[package]]
450
+ name = "windows-link"
451
+ version = "0.2.1"
452
+ source = "registry+https://github.com/rust-lang/crates.io-index"
453
+ checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
454
+
455
+ [[package]]
456
+ name = "zerocopy"
457
+ version = "0.8.40"
458
+ source = "registry+https://github.com/rust-lang/crates.io-index"
459
+ checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5"
460
+ dependencies = [
461
+ "zerocopy-derive",
462
+ ]
463
+
464
+ [[package]]
465
+ name = "zerocopy-derive"
466
+ version = "0.8.40"
467
+ source = "registry+https://github.com/rust-lang/crates.io-index"
468
+ checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953"
469
+ dependencies = [
470
+ "proc-macro2",
471
+ "quote",
472
+ "syn",
473
+ ]
@@ -0,0 +1,46 @@
1
+ [package]
2
+ name = "stegano_core"
3
+ version = "0.1.3"
4
+ edition = "2021"
5
+ authors = ["Steganography Research Team"]
6
+ description = "High-performance steganography engine: Adaptive Quadtree + Discrete ABC + LSB-Matching"
7
+
8
+ # ── Library configuration ────────────────────────────────────────────────────
9
+ # crate-type = ["cdylib"] produces a shared library (.so / .pyd) loadable by Python.
10
+ # The source is kept in rust_src/ to avoid conflicts with the existing Python src/ package.
11
+ [lib]
12
+ name = "stegano_core"
13
+ crate-type = ["cdylib"]
14
+ path = "rust_src/lib.rs"
15
+
16
+ # ── Dependencies ─────────────────────────────────────────────────────────────
17
+ [dependencies]
18
+
19
+ # PyO3: Rust ↔ Python FFI bridge.
20
+ # "extension-module" feature disables linking against libpython so that the .so
21
+ # can be loaded by any compatible Python interpreter (maturin requirement).
22
+ pyo3 = { version = "0.21", features = ["extension-module"] }
23
+
24
+ # rust-numpy: zero-copy bridge between ndarray and NumPy arrays.
25
+ # Version must match the PyO3 major version.
26
+ numpy = "0.21"
27
+
28
+ # ndarray: Rust's idiomatic N-dimensional array library.
29
+ # Provides ArrayView2 / Array2 for O(1) slicing without data copies.
30
+ ndarray = "0.15"
31
+
32
+ # rand: Cryptographically seeded PRNG + utility traits (Rng, SeedableRng).
33
+ # rand::seq::index::sample provides reservoir sampling in O(L) time.
34
+ # "small_rng" feature enables SmallRng — a fast, non-cryptographic PRNG
35
+ # (Xoshiro256++) that is 2-4x faster than StdRng for stochastic search loops.
36
+ rand = { version = "0.8", features = ["small_rng"] }
37
+ sha2 = "0.10"
38
+
39
+ # ── Release-profile optimisations ────────────────────────────────────────────
40
+ # lto = "thin" enables cross-crate inlining for tighter inner loops.
41
+ # codegen-units = 1 allows LLVM to optimise across the entire crate at once.
42
+ [profile.release]
43
+ opt-level = 3
44
+ lto = "thin"
45
+ codegen-units = 1
46
+ panic = "abort"
@@ -0,0 +1,13 @@
1
+ Metadata-Version: 2.4
2
+ Name: stegano-core
3
+ Version: 0.1.3
4
+ Requires-Dist: opencv-python>=4.8.0
5
+ Requires-Dist: numpy>=1.24.0
6
+ Requires-Dist: scikit-image>=0.21.0
7
+ Requires-Dist: rich>=13.5.2
8
+ Requires-Dist: psutil>=5.9.5
9
+ Requires-Dist: cryptography>=41.0.3
10
+ Requires-Dist: matplotlib>=3.7.2
11
+ Requires-Dist: questionary>=2.0.0
12
+ Summary: Adaptive Quadtree + Discrete ABC + LSB-Matching steganography engine (Rust/PyO3)
13
+ Requires-Python: >=3.9