ferrum-orm 0.1.0__tar.gz → 0.1.2__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 (65) hide show
  1. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/Cargo.lock +425 -41
  2. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/Cargo.toml +3 -2
  3. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/PKG-INFO +41 -10
  4. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/README.md +26 -5
  5. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/Cargo.toml +6 -0
  6. ferrum_orm-0.1.2/crates/ferrum-core/benches/hydrate.rs +91 -0
  7. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-pyo3/Cargo.toml +1 -0
  8. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-pyo3/src/lib.rs +38 -40
  9. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-sql/Cargo.toml +6 -0
  10. ferrum_orm-0.1.2/crates/ferrum-sql/benches/compile.rs +144 -0
  11. ferrum_orm-0.1.2/crates/ferrum-sql/src/dialect.rs +94 -0
  12. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-sql/src/emit.rs +74 -53
  13. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-sql/src/lib.rs +1 -1
  14. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/pyproject.toml +16 -5
  15. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/__init__.py +5 -2
  16. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/_native.pyi +2 -2
  17. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/app.py +6 -1
  18. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/init.py +13 -5
  19. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/inspectdb_cmd.py +73 -19
  20. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/migrate_cmd.py +44 -19
  21. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/migrations_cmd.py +1 -1
  22. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/resetdb_cmd.py +14 -3
  23. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/revert_cmd.py +41 -16
  24. ferrum_orm-0.1.2/python/ferrum/connection.py +292 -0
  25. ferrum_orm-0.1.2/python/ferrum/drivers/__init__.py +48 -0
  26. ferrum_orm-0.1.2/python/ferrum/drivers/mysql.py +158 -0
  27. ferrum_orm-0.1.2/python/ferrum/drivers/postgres.py +196 -0
  28. ferrum_orm-0.1.2/python/ferrum/drivers/protocol.py +37 -0
  29. ferrum_orm-0.1.2/python/ferrum/drivers/sqlite.py +113 -0
  30. ferrum_orm-0.1.2/python/ferrum/errors.py +421 -0
  31. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/ext/pgvector.py +11 -3
  32. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/hooks.py +28 -0
  33. ferrum_orm-0.1.2/python/ferrum/migrations/drift.py +115 -0
  34. ferrum_orm-0.1.2/python/ferrum/migrations/introspect.py +356 -0
  35. ferrum_orm-0.1.2/python/ferrum/migrations/ledger.py +155 -0
  36. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/orchestrator.py +159 -35
  37. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/models.py +37 -5
  38. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/queryset.py +115 -58
  39. ferrum_orm-0.1.0/crates/ferrum-sql/src/dialect.rs +0 -38
  40. ferrum_orm-0.1.0/python/ferrum/connection.py +0 -183
  41. ferrum_orm-0.1.0/python/ferrum/errors.py +0 -222
  42. ferrum_orm-0.1.0/python/ferrum/migrations/ledger.py +0 -106
  43. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/LICENSE +0 -0
  44. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/compile/mod.rs +0 -0
  45. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/error.rs +0 -0
  46. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/hydrate/mod.rs +0 -0
  47. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/ir/metadata.rs +0 -0
  48. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/ir/mod.rs +0 -0
  49. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/lib.rs +0 -0
  50. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/crates/ferrum-core/src/migrate/mod.rs +0 -0
  51. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/__init__.py +0 -0
  52. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/bootstrap.py +0 -0
  53. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/makemigrations_cmd.py +0 -0
  54. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/cli/showmigrations_cmd.py +0 -0
  55. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/config.py +0 -0
  56. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/contrib/__init__.py +0 -0
  57. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/contrib/fastapi.py +0 -0
  58. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/ext/__init__.py +0 -0
  59. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/__init__.py +0 -0
  60. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/base.py +0 -0
  61. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/gates.py +0 -0
  62. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/loader.py +0 -0
  63. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/operations.py +0 -0
  64. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/migrations/tokens.py +0 -0
  65. {ferrum_orm-0.1.0 → ferrum_orm-0.1.2}/python/ferrum/py.typed +0 -0
@@ -2,6 +2,27 @@
2
2
  # It is not intended for manual editing.
3
3
  version = 4
4
4
 
5
+ [[package]]
6
+ name = "aho-corasick"
7
+ version = "1.1.4"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
10
+ dependencies = [
11
+ "memchr",
12
+ ]
13
+
14
+ [[package]]
15
+ name = "anes"
16
+ version = "0.1.6"
17
+ source = "registry+https://github.com/rust-lang/crates.io-index"
18
+ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
19
+
20
+ [[package]]
21
+ name = "anstyle"
22
+ version = "1.0.14"
23
+ source = "registry+https://github.com/rust-lang/crates.io-index"
24
+ checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
25
+
5
26
  [[package]]
6
27
  name = "anyhow"
7
28
  version = "1.0.102"
@@ -35,12 +56,149 @@ version = "2.13.0"
35
56
  source = "registry+https://github.com/rust-lang/crates.io-index"
36
57
  checksum = "b4388bee8683e3d04af747c73422af53102d2bd24d9eadb6cbc100baef4b43f8"
37
58
 
59
+ [[package]]
60
+ name = "bumpalo"
61
+ version = "3.20.3"
62
+ source = "registry+https://github.com/rust-lang/crates.io-index"
63
+ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
64
+
65
+ [[package]]
66
+ name = "cast"
67
+ version = "0.3.0"
68
+ source = "registry+https://github.com/rust-lang/crates.io-index"
69
+ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
70
+
38
71
  [[package]]
39
72
  name = "cfg-if"
40
73
  version = "1.0.4"
41
74
  source = "registry+https://github.com/rust-lang/crates.io-index"
42
75
  checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
43
76
 
77
+ [[package]]
78
+ name = "ciborium"
79
+ version = "0.2.2"
80
+ source = "registry+https://github.com/rust-lang/crates.io-index"
81
+ checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
82
+ dependencies = [
83
+ "ciborium-io",
84
+ "ciborium-ll",
85
+ "serde",
86
+ ]
87
+
88
+ [[package]]
89
+ name = "ciborium-io"
90
+ version = "0.2.2"
91
+ source = "registry+https://github.com/rust-lang/crates.io-index"
92
+ checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
93
+
94
+ [[package]]
95
+ name = "ciborium-ll"
96
+ version = "0.2.2"
97
+ source = "registry+https://github.com/rust-lang/crates.io-index"
98
+ checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
99
+ dependencies = [
100
+ "ciborium-io",
101
+ "half",
102
+ ]
103
+
104
+ [[package]]
105
+ name = "clap"
106
+ version = "4.6.1"
107
+ source = "registry+https://github.com/rust-lang/crates.io-index"
108
+ checksum = "1ddb117e43bbf7dacf0a4190fef4d345b9bad68dfc649cb349e7d17d28428e51"
109
+ dependencies = [
110
+ "clap_builder",
111
+ ]
112
+
113
+ [[package]]
114
+ name = "clap_builder"
115
+ version = "4.6.0"
116
+ source = "registry+https://github.com/rust-lang/crates.io-index"
117
+ checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f"
118
+ dependencies = [
119
+ "anstyle",
120
+ "clap_lex",
121
+ ]
122
+
123
+ [[package]]
124
+ name = "clap_lex"
125
+ version = "1.1.0"
126
+ source = "registry+https://github.com/rust-lang/crates.io-index"
127
+ checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
128
+
129
+ [[package]]
130
+ name = "criterion"
131
+ version = "0.5.1"
132
+ source = "registry+https://github.com/rust-lang/crates.io-index"
133
+ checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
134
+ dependencies = [
135
+ "anes",
136
+ "cast",
137
+ "ciborium",
138
+ "clap",
139
+ "criterion-plot",
140
+ "is-terminal",
141
+ "itertools",
142
+ "num-traits",
143
+ "once_cell",
144
+ "oorandom",
145
+ "plotters",
146
+ "rayon",
147
+ "regex",
148
+ "serde",
149
+ "serde_derive",
150
+ "serde_json",
151
+ "tinytemplate",
152
+ "walkdir",
153
+ ]
154
+
155
+ [[package]]
156
+ name = "criterion-plot"
157
+ version = "0.5.0"
158
+ source = "registry+https://github.com/rust-lang/crates.io-index"
159
+ checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1"
160
+ dependencies = [
161
+ "cast",
162
+ "itertools",
163
+ ]
164
+
165
+ [[package]]
166
+ name = "crossbeam-deque"
167
+ version = "0.8.6"
168
+ source = "registry+https://github.com/rust-lang/crates.io-index"
169
+ checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51"
170
+ dependencies = [
171
+ "crossbeam-epoch",
172
+ "crossbeam-utils",
173
+ ]
174
+
175
+ [[package]]
176
+ name = "crossbeam-epoch"
177
+ version = "0.9.18"
178
+ source = "registry+https://github.com/rust-lang/crates.io-index"
179
+ checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
180
+ dependencies = [
181
+ "crossbeam-utils",
182
+ ]
183
+
184
+ [[package]]
185
+ name = "crossbeam-utils"
186
+ version = "0.8.21"
187
+ source = "registry+https://github.com/rust-lang/crates.io-index"
188
+ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
189
+
190
+ [[package]]
191
+ name = "crunchy"
192
+ version = "0.2.4"
193
+ source = "registry+https://github.com/rust-lang/crates.io-index"
194
+ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
195
+
196
+ [[package]]
197
+ name = "either"
198
+ version = "1.16.0"
199
+ source = "registry+https://github.com/rust-lang/crates.io-index"
200
+ checksum = "91622ff5e7162018101f2fea40d6ebf4a78bbe5a49736a2020649edf9693679e"
201
+
44
202
  [[package]]
45
203
  name = "equivalent"
46
204
  version = "1.0.2"
@@ -65,8 +223,9 @@ checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
65
223
 
66
224
  [[package]]
67
225
  name = "ferrum-core"
68
- version = "0.1.0"
226
+ version = "0.1.2"
69
227
  dependencies = [
228
+ "criterion",
70
229
  "proptest",
71
230
  "serde",
72
231
  "serde_json",
@@ -75,7 +234,7 @@ dependencies = [
75
234
 
76
235
  [[package]]
77
236
  name = "ferrum-migrate"
78
- version = "0.1.0"
237
+ version = "0.1.2"
79
238
  dependencies = [
80
239
  "ferrum-core",
81
240
  "serde",
@@ -84,7 +243,7 @@ dependencies = [
84
243
 
85
244
  [[package]]
86
245
  name = "ferrum-pyo3"
87
- version = "0.1.0"
246
+ version = "0.1.2"
88
247
  dependencies = [
89
248
  "ferrum-core",
90
249
  "ferrum-sql",
@@ -95,8 +254,9 @@ dependencies = [
95
254
 
96
255
  [[package]]
97
256
  name = "ferrum-sql"
98
- version = "0.1.0"
257
+ version = "0.1.2"
99
258
  dependencies = [
259
+ "criterion",
100
260
  "ferrum-core",
101
261
  "proptest",
102
262
  "serde",
@@ -115,6 +275,30 @@ version = "0.1.5"
115
275
  source = "registry+https://github.com/rust-lang/crates.io-index"
116
276
  checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
117
277
 
278
+ [[package]]
279
+ name = "futures-core"
280
+ version = "0.3.32"
281
+ source = "registry+https://github.com/rust-lang/crates.io-index"
282
+ checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d"
283
+
284
+ [[package]]
285
+ name = "futures-task"
286
+ version = "0.3.32"
287
+ source = "registry+https://github.com/rust-lang/crates.io-index"
288
+ checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393"
289
+
290
+ [[package]]
291
+ name = "futures-util"
292
+ version = "0.3.32"
293
+ source = "registry+https://github.com/rust-lang/crates.io-index"
294
+ checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6"
295
+ dependencies = [
296
+ "futures-core",
297
+ "futures-task",
298
+ "pin-project-lite",
299
+ "slab",
300
+ ]
301
+
118
302
  [[package]]
119
303
  name = "getrandom"
120
304
  version = "0.3.4"
@@ -140,6 +324,17 @@ dependencies = [
140
324
  "wasip3",
141
325
  ]
142
326
 
327
+ [[package]]
328
+ name = "half"
329
+ version = "2.7.1"
330
+ source = "registry+https://github.com/rust-lang/crates.io-index"
331
+ checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b"
332
+ dependencies = [
333
+ "cfg-if",
334
+ "crunchy",
335
+ "zerocopy",
336
+ ]
337
+
143
338
  [[package]]
144
339
  name = "hashbrown"
145
340
  version = "0.15.5"
@@ -161,6 +356,12 @@ version = "0.5.0"
161
356
  source = "registry+https://github.com/rust-lang/crates.io-index"
162
357
  checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
163
358
 
359
+ [[package]]
360
+ name = "hermit-abi"
361
+ version = "0.5.2"
362
+ source = "registry+https://github.com/rust-lang/crates.io-index"
363
+ checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c"
364
+
164
365
  [[package]]
165
366
  name = "id-arena"
166
367
  version = "2.3.0"
@@ -180,12 +381,23 @@ dependencies = [
180
381
  ]
181
382
 
182
383
  [[package]]
183
- name = "indoc"
184
- version = "2.0.7"
384
+ name = "is-terminal"
385
+ version = "0.4.17"
185
386
  source = "registry+https://github.com/rust-lang/crates.io-index"
186
- checksum = "79cf5c93f93228cf8efb3ba362535fb11199ac548a09ce117c9b1adc3030d706"
387
+ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46"
187
388
  dependencies = [
188
- "rustversion",
389
+ "hermit-abi",
390
+ "libc",
391
+ "windows-sys",
392
+ ]
393
+
394
+ [[package]]
395
+ name = "itertools"
396
+ version = "0.10.5"
397
+ source = "registry+https://github.com/rust-lang/crates.io-index"
398
+ checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
399
+ dependencies = [
400
+ "either",
189
401
  ]
190
402
 
191
403
  [[package]]
@@ -194,6 +406,17 @@ version = "1.0.18"
194
406
  source = "registry+https://github.com/rust-lang/crates.io-index"
195
407
  checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
196
408
 
409
+ [[package]]
410
+ name = "js-sys"
411
+ version = "0.3.102"
412
+ source = "registry+https://github.com/rust-lang/crates.io-index"
413
+ checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
414
+ dependencies = [
415
+ "cfg-if",
416
+ "futures-util",
417
+ "wasm-bindgen",
418
+ ]
419
+
197
420
  [[package]]
198
421
  name = "leb128fmt"
199
422
  version = "0.1.0"
@@ -224,15 +447,6 @@ version = "2.8.2"
224
447
  source = "registry+https://github.com/rust-lang/crates.io-index"
225
448
  checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
226
449
 
227
- [[package]]
228
- name = "memoffset"
229
- version = "0.9.1"
230
- source = "registry+https://github.com/rust-lang/crates.io-index"
231
- checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
232
- dependencies = [
233
- "autocfg",
234
- ]
235
-
236
450
  [[package]]
237
451
  name = "num-traits"
238
452
  version = "0.2.19"
@@ -248,6 +462,46 @@ version = "1.21.4"
248
462
  source = "registry+https://github.com/rust-lang/crates.io-index"
249
463
  checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
250
464
 
465
+ [[package]]
466
+ name = "oorandom"
467
+ version = "11.1.5"
468
+ source = "registry+https://github.com/rust-lang/crates.io-index"
469
+ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e"
470
+
471
+ [[package]]
472
+ name = "pin-project-lite"
473
+ version = "0.2.17"
474
+ source = "registry+https://github.com/rust-lang/crates.io-index"
475
+ checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd"
476
+
477
+ [[package]]
478
+ name = "plotters"
479
+ version = "0.3.7"
480
+ source = "registry+https://github.com/rust-lang/crates.io-index"
481
+ checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747"
482
+ dependencies = [
483
+ "num-traits",
484
+ "plotters-backend",
485
+ "plotters-svg",
486
+ "wasm-bindgen",
487
+ "web-sys",
488
+ ]
489
+
490
+ [[package]]
491
+ name = "plotters-backend"
492
+ version = "0.3.7"
493
+ source = "registry+https://github.com/rust-lang/crates.io-index"
494
+ checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a"
495
+
496
+ [[package]]
497
+ name = "plotters-svg"
498
+ version = "0.3.7"
499
+ source = "registry+https://github.com/rust-lang/crates.io-index"
500
+ checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670"
501
+ dependencies = [
502
+ "plotters-backend",
503
+ ]
504
+
251
505
  [[package]]
252
506
  name = "portable-atomic"
253
507
  version = "1.13.1"
@@ -303,37 +557,32 @@ dependencies = [
303
557
 
304
558
  [[package]]
305
559
  name = "pyo3"
306
- version = "0.22.6"
560
+ version = "0.29.0"
307
561
  source = "registry+https://github.com/rust-lang/crates.io-index"
308
- checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
562
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
309
563
  dependencies = [
310
- "cfg-if",
311
- "indoc",
312
564
  "libc",
313
- "memoffset",
314
565
  "once_cell",
315
566
  "portable-atomic",
316
567
  "pyo3-build-config",
317
568
  "pyo3-ffi",
318
569
  "pyo3-macros",
319
- "unindent",
320
570
  ]
321
571
 
322
572
  [[package]]
323
573
  name = "pyo3-build-config"
324
- version = "0.22.6"
574
+ version = "0.29.0"
325
575
  source = "registry+https://github.com/rust-lang/crates.io-index"
326
- checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
576
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
327
577
  dependencies = [
328
- "once_cell",
329
578
  "target-lexicon",
330
579
  ]
331
580
 
332
581
  [[package]]
333
582
  name = "pyo3-ffi"
334
- version = "0.22.6"
583
+ version = "0.29.0"
335
584
  source = "registry+https://github.com/rust-lang/crates.io-index"
336
- checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
585
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
337
586
  dependencies = [
338
587
  "libc",
339
588
  "pyo3-build-config",
@@ -341,9 +590,9 @@ dependencies = [
341
590
 
342
591
  [[package]]
343
592
  name = "pyo3-macros"
344
- version = "0.22.6"
593
+ version = "0.29.0"
345
594
  source = "registry+https://github.com/rust-lang/crates.io-index"
346
- checksum = "0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453"
595
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
347
596
  dependencies = [
348
597
  "proc-macro2",
349
598
  "pyo3-macros-backend",
@@ -353,13 +602,12 @@ dependencies = [
353
602
 
354
603
  [[package]]
355
604
  name = "pyo3-macros-backend"
356
- version = "0.22.6"
605
+ version = "0.29.0"
357
606
  source = "registry+https://github.com/rust-lang/crates.io-index"
358
- checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe"
607
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
359
608
  dependencies = [
360
609
  "heck",
361
610
  "proc-macro2",
362
- "pyo3-build-config",
363
611
  "quote",
364
612
  "syn",
365
613
  ]
@@ -429,6 +677,49 @@ dependencies = [
429
677
  "rand_core",
430
678
  ]
431
679
 
680
+ [[package]]
681
+ name = "rayon"
682
+ version = "1.12.0"
683
+ source = "registry+https://github.com/rust-lang/crates.io-index"
684
+ checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
685
+ dependencies = [
686
+ "either",
687
+ "rayon-core",
688
+ ]
689
+
690
+ [[package]]
691
+ name = "rayon-core"
692
+ version = "1.13.0"
693
+ source = "registry+https://github.com/rust-lang/crates.io-index"
694
+ checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
695
+ dependencies = [
696
+ "crossbeam-deque",
697
+ "crossbeam-utils",
698
+ ]
699
+
700
+ [[package]]
701
+ name = "regex"
702
+ version = "1.12.4"
703
+ source = "registry+https://github.com/rust-lang/crates.io-index"
704
+ checksum = "f1292b7759ae1cb9ec195452d1390a074f0cd8541ab7a5a8c31cd6db45d4a6ba"
705
+ dependencies = [
706
+ "aho-corasick",
707
+ "memchr",
708
+ "regex-automata",
709
+ "regex-syntax",
710
+ ]
711
+
712
+ [[package]]
713
+ name = "regex-automata"
714
+ version = "0.4.14"
715
+ source = "registry+https://github.com/rust-lang/crates.io-index"
716
+ checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f"
717
+ dependencies = [
718
+ "aho-corasick",
719
+ "memchr",
720
+ "regex-syntax",
721
+ ]
722
+
432
723
  [[package]]
433
724
  name = "regex-syntax"
434
725
  version = "0.8.11"
@@ -466,6 +757,15 @@ dependencies = [
466
757
  "wait-timeout",
467
758
  ]
468
759
 
760
+ [[package]]
761
+ name = "same-file"
762
+ version = "1.0.6"
763
+ source = "registry+https://github.com/rust-lang/crates.io-index"
764
+ checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
765
+ dependencies = [
766
+ "winapi-util",
767
+ ]
768
+
469
769
  [[package]]
470
770
  name = "semver"
471
771
  version = "1.0.28"
@@ -515,6 +815,12 @@ dependencies = [
515
815
  "zmij",
516
816
  ]
517
817
 
818
+ [[package]]
819
+ name = "slab"
820
+ version = "0.4.12"
821
+ source = "registry+https://github.com/rust-lang/crates.io-index"
822
+ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
823
+
518
824
  [[package]]
519
825
  name = "syn"
520
826
  version = "2.0.117"
@@ -528,9 +834,9 @@ dependencies = [
528
834
 
529
835
  [[package]]
530
836
  name = "target-lexicon"
531
- version = "0.12.16"
837
+ version = "0.13.5"
532
838
  source = "registry+https://github.com/rust-lang/crates.io-index"
533
- checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
839
+ checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
534
840
 
535
841
  [[package]]
536
842
  name = "tempfile"
@@ -565,6 +871,16 @@ dependencies = [
565
871
  "syn",
566
872
  ]
567
873
 
874
+ [[package]]
875
+ name = "tinytemplate"
876
+ version = "1.2.1"
877
+ source = "registry+https://github.com/rust-lang/crates.io-index"
878
+ checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc"
879
+ dependencies = [
880
+ "serde",
881
+ "serde_json",
882
+ ]
883
+
568
884
  [[package]]
569
885
  name = "unarray"
570
886
  version = "0.1.4"
@@ -583,12 +899,6 @@ version = "0.2.6"
583
899
  source = "registry+https://github.com/rust-lang/crates.io-index"
584
900
  checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853"
585
901
 
586
- [[package]]
587
- name = "unindent"
588
- version = "0.2.4"
589
- source = "registry+https://github.com/rust-lang/crates.io-index"
590
- checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
591
-
592
902
  [[package]]
593
903
  name = "wait-timeout"
594
904
  version = "0.2.1"
@@ -598,6 +908,16 @@ dependencies = [
598
908
  "libc",
599
909
  ]
600
910
 
911
+ [[package]]
912
+ name = "walkdir"
913
+ version = "2.5.0"
914
+ source = "registry+https://github.com/rust-lang/crates.io-index"
915
+ checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
916
+ dependencies = [
917
+ "same-file",
918
+ "winapi-util",
919
+ ]
920
+
601
921
  [[package]]
602
922
  name = "wasip2"
603
923
  version = "1.0.4+wasi-0.2.12"
@@ -616,6 +936,51 @@ dependencies = [
616
936
  "wit-bindgen 0.51.0",
617
937
  ]
618
938
 
939
+ [[package]]
940
+ name = "wasm-bindgen"
941
+ version = "0.2.125"
942
+ source = "registry+https://github.com/rust-lang/crates.io-index"
943
+ checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
944
+ dependencies = [
945
+ "cfg-if",
946
+ "once_cell",
947
+ "rustversion",
948
+ "wasm-bindgen-macro",
949
+ "wasm-bindgen-shared",
950
+ ]
951
+
952
+ [[package]]
953
+ name = "wasm-bindgen-macro"
954
+ version = "0.2.125"
955
+ source = "registry+https://github.com/rust-lang/crates.io-index"
956
+ checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
957
+ dependencies = [
958
+ "quote",
959
+ "wasm-bindgen-macro-support",
960
+ ]
961
+
962
+ [[package]]
963
+ name = "wasm-bindgen-macro-support"
964
+ version = "0.2.125"
965
+ source = "registry+https://github.com/rust-lang/crates.io-index"
966
+ checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
967
+ dependencies = [
968
+ "bumpalo",
969
+ "proc-macro2",
970
+ "quote",
971
+ "syn",
972
+ "wasm-bindgen-shared",
973
+ ]
974
+
975
+ [[package]]
976
+ name = "wasm-bindgen-shared"
977
+ version = "0.2.125"
978
+ source = "registry+https://github.com/rust-lang/crates.io-index"
979
+ checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
980
+ dependencies = [
981
+ "unicode-ident",
982
+ ]
983
+
619
984
  [[package]]
620
985
  name = "wasm-encoder"
621
986
  version = "0.244.0"
@@ -650,6 +1015,25 @@ dependencies = [
650
1015
  "semver",
651
1016
  ]
652
1017
 
1018
+ [[package]]
1019
+ name = "web-sys"
1020
+ version = "0.3.102"
1021
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1022
+ checksum = "a6430a72df5eb332242960fe84b3002a241163998241eb596d4f739b9757061d"
1023
+ dependencies = [
1024
+ "js-sys",
1025
+ "wasm-bindgen",
1026
+ ]
1027
+
1028
+ [[package]]
1029
+ name = "winapi-util"
1030
+ version = "0.1.11"
1031
+ source = "registry+https://github.com/rust-lang/crates.io-index"
1032
+ checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22"
1033
+ dependencies = [
1034
+ "windows-sys",
1035
+ ]
1036
+
653
1037
  [[package]]
654
1038
  name = "windows-link"
655
1039
  version = "0.2.1"
@@ -3,7 +3,7 @@ members = ["crates/ferrum-core", "crates/ferrum-sql", "crates/ferrum-pyo3"]
3
3
  resolver = "2"
4
4
 
5
5
  [workspace.package]
6
- version = "0.1.0"
6
+ version = "0.1.2"
7
7
  edition = "2021"
8
8
  authors = ["Ferrum Contributors"]
9
9
  license = "Apache-2.0"
@@ -12,7 +12,7 @@ rust-version = "1.85"
12
12
 
13
13
  [workspace.dependencies]
14
14
  # PyO3 — only ferrum-pyo3 depends on this; declared here to pin the version
15
- pyo3 = { version = "0.22", features = ["abi3-py311"] }
15
+ pyo3 = { version = "0.29", features = ["abi3-py311"] }
16
16
 
17
17
  # Serialization
18
18
  serde = { version = "1", features = ["derive"] }
@@ -23,6 +23,7 @@ thiserror = "2"
23
23
 
24
24
  # Testing & property-based
25
25
  proptest = "1"
26
+ criterion = { version = "0.5", features = ["html_reports"] }
26
27
 
27
28
  # `panic = "unwind"` is required for `ferrum-pyo3` (`cdylib`) so that
28
29
  # `std::panic::catch_unwind` can intercept Rust panics and convert them to