mdbxmou 0.3.6 → 0.3.8

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 (204) hide show
  1. package/README.md +74 -39
  2. package/deps/libmdbx/.clang-format-ignore +8 -0
  3. package/deps/libmdbx/.github/workflows/ci-android.yml +38 -0
  4. package/deps/libmdbx/.github/workflows/ci-mingw.yml +40 -0
  5. package/deps/libmdbx/.github/workflows/ci-posix.yml +34 -0
  6. package/deps/libmdbx/.github/workflows/ci-wincxx.yml +45 -0
  7. package/deps/libmdbx/.github/workflows/ci-windows.yml +32 -0
  8. package/deps/libmdbx/CMakeLists.txt +67 -337
  9. package/deps/libmdbx/COPYRIGHT +1 -1
  10. package/deps/libmdbx/ChangeLog.md +163 -106
  11. package/deps/libmdbx/GNUmakefile +64 -539
  12. package/deps/libmdbx/NOTICE +13 -9
  13. package/deps/libmdbx/README.md +143 -480
  14. package/deps/libmdbx/VERSION.json +1 -0
  15. package/deps/libmdbx/ci.sh +86 -0
  16. package/deps/libmdbx/cmake/compiler.cmake +1 -1
  17. package/deps/libmdbx/cmake/profile.cmake +1 -1
  18. package/deps/libmdbx/cmake/utils.cmake +15 -197
  19. package/deps/libmdbx/{src/config.h.in → config.h.in} +11 -3
  20. package/deps/libmdbx/{src/man1 → man1}/mdbx_chk.1 +1 -1
  21. package/deps/libmdbx/{src/man1 → man1}/mdbx_copy.1 +1 -1
  22. package/deps/libmdbx/{src/man1 → man1}/mdbx_drop.1 +1 -1
  23. package/deps/libmdbx/{src/man1 → man1}/mdbx_dump.1 +1 -1
  24. package/deps/libmdbx/{src/man1 → man1}/mdbx_load.1 +1 -1
  25. package/deps/libmdbx/{src/man1 → man1}/mdbx_stat.1 +1 -1
  26. package/deps/libmdbx/mdbx.c +37619 -0
  27. package/deps/libmdbx/mdbx.c++ +5074 -0
  28. package/deps/libmdbx/mdbx.h +85 -16
  29. package/deps/libmdbx/mdbx.h++ +429 -253
  30. package/deps/libmdbx/mdbx_chk.c +3997 -0
  31. package/deps/libmdbx/mdbx_copy.c +3490 -0
  32. package/deps/libmdbx/mdbx_drop.c +3523 -0
  33. package/deps/libmdbx/mdbx_dump.c +3839 -0
  34. package/deps/libmdbx/mdbx_load.c +4155 -0
  35. package/deps/libmdbx/mdbx_stat.c +3840 -0
  36. package/deps/libmdbx/packages/archlinux/.SRCINFO +16 -0
  37. package/deps/libmdbx/packages/archlinux/PKGBUILD +38 -0
  38. package/deps/libmdbx/packages/buildroot/0001-package-libmdbx.patch +75 -0
  39. package/deps/libmdbx/ut_and_examples/CMakeLists.txt +39 -0
  40. package/deps/libmdbx/ut_and_examples/README.md +11 -0
  41. package/deps/libmdbx/{example → ut_and_examples}/example-mdbx.c +17 -4
  42. package/deps/libmdbx/ut_and_examples/example-mdbx.c++ +99 -0
  43. package/deps/libmdbx/{test/extra/pcrf/pcrf_test.c → ut_and_examples/pcrf/pcrf_simulator.c} +3 -16
  44. package/package.json +1 -1
  45. package/src/dbi.cpp +0 -1
  46. package/src/txnmou.cpp +3 -7
  47. package/deps/libmdbx/.clang-format +0 -3
  48. package/deps/libmdbx/.cmake-format.yaml +0 -3
  49. package/deps/libmdbx/.le.ini +0 -40
  50. package/deps/libmdbx/TODO.md +0 -43
  51. package/deps/libmdbx/conanfile.py +0 -323
  52. package/deps/libmdbx/docs/Doxyfile.in +0 -2734
  53. package/deps/libmdbx/docs/_preface.md +0 -47
  54. package/deps/libmdbx/docs/_restrictions.md +0 -248
  55. package/deps/libmdbx/docs/_starting.md +0 -245
  56. package/deps/libmdbx/docs/_toc.md +0 -34
  57. package/deps/libmdbx/docs/header.html +0 -96
  58. package/deps/libmdbx/example/CMakeLists.txt +0 -6
  59. package/deps/libmdbx/example/README.md +0 -1
  60. package/deps/libmdbx/example/sample-bdb.txt +0 -77
  61. package/deps/libmdbx/packages/buildroot/0001-package-libmdbx-new-package-library-database.patch +0 -173
  62. package/deps/libmdbx/src/alloy.c +0 -54
  63. package/deps/libmdbx/src/api-cold.c +0 -543
  64. package/deps/libmdbx/src/api-copy.c +0 -912
  65. package/deps/libmdbx/src/api-cursor.c +0 -754
  66. package/deps/libmdbx/src/api-dbi.c +0 -315
  67. package/deps/libmdbx/src/api-env.c +0 -1434
  68. package/deps/libmdbx/src/api-extra.c +0 -165
  69. package/deps/libmdbx/src/api-key-transform.c +0 -197
  70. package/deps/libmdbx/src/api-misc.c +0 -286
  71. package/deps/libmdbx/src/api-opts.c +0 -575
  72. package/deps/libmdbx/src/api-range-estimate.c +0 -365
  73. package/deps/libmdbx/src/api-txn-data.c +0 -454
  74. package/deps/libmdbx/src/api-txn.c +0 -921
  75. package/deps/libmdbx/src/atomics-ops.h +0 -364
  76. package/deps/libmdbx/src/atomics-types.h +0 -97
  77. package/deps/libmdbx/src/audit.c +0 -109
  78. package/deps/libmdbx/src/bits.md +0 -34
  79. package/deps/libmdbx/src/chk.c +0 -1796
  80. package/deps/libmdbx/src/cogs.c +0 -309
  81. package/deps/libmdbx/src/cogs.h +0 -506
  82. package/deps/libmdbx/src/coherency.c +0 -170
  83. package/deps/libmdbx/src/cursor.c +0 -2396
  84. package/deps/libmdbx/src/cursor.h +0 -391
  85. package/deps/libmdbx/src/dbi.c +0 -717
  86. package/deps/libmdbx/src/dbi.h +0 -142
  87. package/deps/libmdbx/src/debug_begin.h +0 -36
  88. package/deps/libmdbx/src/debug_end.h +0 -15
  89. package/deps/libmdbx/src/dpl.c +0 -486
  90. package/deps/libmdbx/src/dpl.h +0 -134
  91. package/deps/libmdbx/src/dxb.c +0 -1335
  92. package/deps/libmdbx/src/env.c +0 -607
  93. package/deps/libmdbx/src/essentials.h +0 -125
  94. package/deps/libmdbx/src/gc-get.c +0 -1345
  95. package/deps/libmdbx/src/gc-put.c +0 -970
  96. package/deps/libmdbx/src/gc.h +0 -40
  97. package/deps/libmdbx/src/global.c +0 -474
  98. package/deps/libmdbx/src/internals.h +0 -585
  99. package/deps/libmdbx/src/layout-dxb.h +0 -288
  100. package/deps/libmdbx/src/layout-lck.h +0 -289
  101. package/deps/libmdbx/src/lck-posix.c +0 -859
  102. package/deps/libmdbx/src/lck-windows.c +0 -607
  103. package/deps/libmdbx/src/lck.c +0 -174
  104. package/deps/libmdbx/src/lck.h +0 -110
  105. package/deps/libmdbx/src/logging_and_debug.c +0 -250
  106. package/deps/libmdbx/src/logging_and_debug.h +0 -159
  107. package/deps/libmdbx/src/mdbx.c++ +0 -1837
  108. package/deps/libmdbx/src/meta.c +0 -656
  109. package/deps/libmdbx/src/meta.h +0 -168
  110. package/deps/libmdbx/src/mvcc-readers.c +0 -414
  111. package/deps/libmdbx/src/node.c +0 -365
  112. package/deps/libmdbx/src/node.h +0 -102
  113. package/deps/libmdbx/src/options.h +0 -534
  114. package/deps/libmdbx/src/osal.c +0 -3485
  115. package/deps/libmdbx/src/osal.h +0 -587
  116. package/deps/libmdbx/src/page-get.c +0 -483
  117. package/deps/libmdbx/src/page-iov.c +0 -185
  118. package/deps/libmdbx/src/page-iov.h +0 -34
  119. package/deps/libmdbx/src/page-ops.c +0 -744
  120. package/deps/libmdbx/src/page-ops.h +0 -142
  121. package/deps/libmdbx/src/pnl.c +0 -236
  122. package/deps/libmdbx/src/pnl.h +0 -146
  123. package/deps/libmdbx/src/preface.h +0 -990
  124. package/deps/libmdbx/src/proto.h +0 -105
  125. package/deps/libmdbx/src/refund.c +0 -212
  126. package/deps/libmdbx/src/sort.h +0 -484
  127. package/deps/libmdbx/src/spill.c +0 -431
  128. package/deps/libmdbx/src/spill.h +0 -74
  129. package/deps/libmdbx/src/table.c +0 -107
  130. package/deps/libmdbx/src/tls.c +0 -551
  131. package/deps/libmdbx/src/tls.h +0 -43
  132. package/deps/libmdbx/src/tools/chk.c +0 -673
  133. package/deps/libmdbx/src/tools/copy.c +0 -166
  134. package/deps/libmdbx/src/tools/drop.c +0 -199
  135. package/deps/libmdbx/src/tools/dump.c +0 -515
  136. package/deps/libmdbx/src/tools/load.c +0 -831
  137. package/deps/libmdbx/src/tools/stat.c +0 -516
  138. package/deps/libmdbx/src/tools/wingetopt.c +0 -87
  139. package/deps/libmdbx/src/tools/wingetopt.h +0 -30
  140. package/deps/libmdbx/src/tree-ops.c +0 -1554
  141. package/deps/libmdbx/src/tree-search.c +0 -140
  142. package/deps/libmdbx/src/txl.c +0 -99
  143. package/deps/libmdbx/src/txl.h +0 -26
  144. package/deps/libmdbx/src/txn.c +0 -1083
  145. package/deps/libmdbx/src/unaligned.h +0 -205
  146. package/deps/libmdbx/src/utils.c +0 -32
  147. package/deps/libmdbx/src/utils.h +0 -76
  148. package/deps/libmdbx/src/version.c.in +0 -44
  149. package/deps/libmdbx/src/walk.c +0 -290
  150. package/deps/libmdbx/src/walk.h +0 -20
  151. package/deps/libmdbx/src/windows-import.c +0 -152
  152. package/deps/libmdbx/src/windows-import.h +0 -128
  153. package/deps/libmdbx/test/CMakeLists.txt +0 -317
  154. package/deps/libmdbx/test/append.c++ +0 -237
  155. package/deps/libmdbx/test/base.h++ +0 -92
  156. package/deps/libmdbx/test/battery-tmux.sh +0 -64
  157. package/deps/libmdbx/test/cases.c++ +0 -118
  158. package/deps/libmdbx/test/chrono.c++ +0 -134
  159. package/deps/libmdbx/test/chrono.h++ +0 -85
  160. package/deps/libmdbx/test/config.c++ +0 -643
  161. package/deps/libmdbx/test/config.h++ +0 -334
  162. package/deps/libmdbx/test/copy.c++ +0 -62
  163. package/deps/libmdbx/test/dead.c++ +0 -39
  164. package/deps/libmdbx/test/dump-load.sh +0 -40
  165. package/deps/libmdbx/test/extra/crunched_delete.c++ +0 -409
  166. package/deps/libmdbx/test/extra/cursor_closing.c++ +0 -410
  167. package/deps/libmdbx/test/extra/dbi.c++ +0 -229
  168. package/deps/libmdbx/test/extra/doubtless_positioning.c++ +0 -253
  169. package/deps/libmdbx/test/extra/dupfix_addodd.c +0 -94
  170. package/deps/libmdbx/test/extra/dupfix_multiple.c++ +0 -311
  171. package/deps/libmdbx/test/extra/early_close_dbi.c++ +0 -137
  172. package/deps/libmdbx/test/extra/hex_base64_base58.c++ +0 -118
  173. package/deps/libmdbx/test/extra/maindb_ordinal.c++ +0 -61
  174. package/deps/libmdbx/test/extra/open.c++ +0 -96
  175. package/deps/libmdbx/test/extra/pcrf/README.md +0 -2
  176. package/deps/libmdbx/test/extra/probe.c++ +0 -10
  177. package/deps/libmdbx/test/extra/txn.c++ +0 -407
  178. package/deps/libmdbx/test/extra/upsert_alldups.c +0 -193
  179. package/deps/libmdbx/test/fork.c++ +0 -263
  180. package/deps/libmdbx/test/hill.c++ +0 -447
  181. package/deps/libmdbx/test/jitter.c++ +0 -197
  182. package/deps/libmdbx/test/keygen.c++ +0 -393
  183. package/deps/libmdbx/test/keygen.h++ +0 -130
  184. package/deps/libmdbx/test/log.c++ +0 -358
  185. package/deps/libmdbx/test/log.h++ +0 -91
  186. package/deps/libmdbx/test/main.c++ +0 -706
  187. package/deps/libmdbx/test/nested.c++ +0 -318
  188. package/deps/libmdbx/test/osal-unix.c++ +0 -647
  189. package/deps/libmdbx/test/osal-windows.c++ +0 -440
  190. package/deps/libmdbx/test/osal.h++ +0 -41
  191. package/deps/libmdbx/test/stochastic.sh +0 -690
  192. package/deps/libmdbx/test/stub/LICENSE +0 -24
  193. package/deps/libmdbx/test/stub/README.md +0 -8
  194. package/deps/libmdbx/test/stub/pthread_barrier.c +0 -104
  195. package/deps/libmdbx/test/stub/pthread_barrier.h +0 -77
  196. package/deps/libmdbx/test/test.c++ +0 -1551
  197. package/deps/libmdbx/test/test.h++ +0 -298
  198. package/deps/libmdbx/test/tmux.conf +0 -3
  199. package/deps/libmdbx/test/try.c++ +0 -30
  200. package/deps/libmdbx/test/ttl.c++ +0 -240
  201. package/deps/libmdbx/test/utils.c++ +0 -203
  202. package/deps/libmdbx/test/utils.h++ +0 -326
  203. package/deps/libmdbx/test/valgrind_suppress.txt +0 -536
  204. /package/deps/libmdbx/{src/ntdll.def → ntdll.def} +0 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # mdbxmou
2
2
 
3
- High-performance Node.js binding for libmdbx — a fast, lightweight, embedded key-value database.
3
+ High-performance Node.js binding for [libmdbx](https://github.com/erthink/libmdbx) — a fast, lightweight, embedded key-value database.
4
4
 
5
5
  ## Features
6
6
 
@@ -24,29 +24,33 @@ CommonJS:
24
24
  ```javascript
25
25
  const { MDBX_Env, MDBX_Param } = require('mdbxmou');
26
26
 
27
- // Create environment
28
- const env = new MDBX_Env();
29
- await env.open({
30
- path: './data',
31
- keyFlag: MDBX_Param.keyFlag.string, // Default key encoding (optional)
32
- valueFlag: MDBX_Param.valueFlag.string // Default value encoding (optional)
33
- });
27
+ async function main() {
28
+ // Create environment
29
+ const env = new MDBX_Env();
30
+ await env.open({
31
+ path: './data',
32
+ keyFlag: MDBX_Param.keyFlag.string, // Default key encoding (optional)
33
+ valueFlag: MDBX_Param.valueFlag.string // Default value encoding (optional)
34
+ });
34
35
 
35
- // Write data
36
- const txn = env.startWrite();
37
- const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);
38
- dbi.put(txn, 1, "hello");
39
- dbi.put(txn, 2, "world");
40
- txn.commit();
36
+ // Write data
37
+ const txn = env.startWrite();
38
+ const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);
39
+ dbi.put(txn, 1, "hello");
40
+ dbi.put(txn, 2, "world");
41
+ txn.commit();
41
42
 
42
- // Read data
43
- const readTxn = env.startRead();
44
- const readDbi = readTxn.openMap(BigInt(MDBX_Param.keyMode.ordinal));
45
- const value = readDbi.get(readTxn, 1);
46
- console.log(value); // "hello"
47
- readTxn.commit();
43
+ // Read data
44
+ const readTxn = env.startRead();
45
+ const readDbi = readTxn.openMap(BigInt(MDBX_Param.keyMode.ordinal));
46
+ const value = readDbi.get(readTxn, 1);
47
+ console.log(value); // "hello"
48
+ readTxn.commit();
48
49
 
49
- await env.close();
50
+ await env.close();
51
+ }
52
+
53
+ main().catch(console.error);
50
54
  ```
51
55
 
52
56
  ESM:
@@ -628,6 +632,9 @@ async function asyncExample() {
628
632
  readTxn.commit();
629
633
  await env.close();
630
634
  }
635
+
636
+ syncExample();
637
+ asyncExample().catch(console.error);
631
638
  ```
632
639
 
633
640
  ### Key Type Behavior
@@ -670,6 +677,8 @@ function keyTypesExample() {
670
677
 
671
678
  env.closeSync();
672
679
  }
680
+
681
+ keyTypesExample();
673
682
  ```
674
683
 
675
684
  ### Cursor Operations
@@ -723,6 +732,8 @@ function cursorExample() {
723
732
  readTxn.commit();
724
733
  env.closeSync();
725
734
  }
735
+
736
+ cursorExample();
726
737
  ```
727
738
 
728
739
  ### Query API (Advanced Async)
@@ -742,7 +753,7 @@ async function queryExample() {
742
753
  // Async query with DBI object (not database name)
743
754
  const results = await env.query([
744
755
  {
745
- dbi: dbi,
756
+ dbi,
746
757
  mode: MDBX_Param.queryMode.insertUnique,
747
758
  item: [
748
759
  { key: 1, value: JSON.stringify({ name: "Alice" }) },
@@ -750,7 +761,7 @@ async function queryExample() {
750
761
  ]
751
762
  },
752
763
  {
753
- dbi: dbi,
764
+ dbi,
754
765
  mode: MDBX_Param.queryMode.get,
755
766
  item: [
756
767
  { key: 1 },
@@ -762,6 +773,8 @@ async function queryExample() {
762
773
  console.log('Query results:', JSON.stringify(results, null, 2));
763
774
  await env.close();
764
775
  }
776
+
777
+ queryExample().catch(console.error);
765
778
  ```
766
779
 
767
780
  ### Async Keys API
@@ -788,7 +801,7 @@ async function keysExample() {
788
801
  console.log("All keys:", allKeys);
789
802
 
790
803
  // Get keys with DBI object parameter
791
- const allKeys2 = await env.keys({ dbi: dbi });
804
+ const allKeys2 = await env.keys({ dbi });
792
805
  console.log("All keys (object):", allKeys2);
793
806
 
794
807
  // Get keys from multiple DBIs
@@ -797,32 +810,54 @@ async function keysExample() {
797
810
 
798
811
  // Get limited keys from specific position
799
812
  const limitedKeys = await env.keys([
800
- { dbi: dbi, limit: 3, from: 5 }
813
+ { dbi, limit: 3, from: 5 }
801
814
  ]);
802
815
  console.log("Limited keys:", limitedKeys);
803
816
 
804
817
  await env.close();
805
818
  }
819
+
820
+ keysExample().catch(console.error);
806
821
  ```
807
822
 
808
823
  ## Error Handling
809
824
 
810
825
  ```javascript
811
- try {
812
- const env = new MDBX_Env();
813
- await env.open({ path: './data' });
814
-
815
- const txn = env.startWrite();
816
- const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);
817
-
818
- // This might throw if key already exists with MDBX_NOOVERWRITE
819
- dbi.put(txn, 123, "value");
820
-
821
- txn.commit();
822
- } catch (error) {
823
- console.error('Database error:', error.message);
824
- if (txn) txn.abort();
826
+ async function errorHandlingExample() {
827
+ let txn;
828
+ try {
829
+ const env = new MDBX_Env();
830
+ await env.open({ path: './data' });
831
+
832
+ txn = env.startWrite();
833
+ const dbi = txn.createMap(MDBX_Param.keyMode.ordinal);
834
+
835
+ // This might throw if key already exists with MDBX_NOOVERWRITE
836
+ dbi.put(txn, 123, "value");
837
+
838
+ txn.commit();
839
+ } catch (error) {
840
+ console.error('Database error:', error.message);
841
+ if (txn) txn.abort();
842
+ }
825
843
  }
844
+
845
+ errorHandlingExample().catch(console.error);
846
+ ```
847
+
848
+ ## Runnable README Tests
849
+
850
+ The examples above have matching runnable tests in `test/`. You can execute them directly:
851
+
852
+ ```bash
853
+ node test/readme-quick-start.js
854
+ node test/readme-sync-example.js
855
+ node test/readme-async-example.js
856
+ node test/readme-key-types.js
857
+ node test/readme-cursor-example.js
858
+ node test/readme-query-example.js
859
+ node test/readme-keys-example.js
860
+ node test/readme-error-handling.js
826
861
  ```
827
862
 
828
863
  ## Configuration Options
@@ -0,0 +1,8 @@
1
+ mdbx.c
2
+ mdbx.c++
3
+ mdbx_chk.c
4
+ mdbx_copy.c
5
+ mdbx_drop.c
6
+ mdbx_dump.c
7
+ mdbx_load.c
8
+ mdbx_stat.c
@@ -0,0 +1,38 @@
1
+ name: ci-android
2
+
3
+ env:
4
+ CI: GITHUB
5
+
6
+ concurrency:
7
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
8
+ cancel-in-progress: true
9
+
10
+ on: [push]
11
+
12
+ jobs:
13
+ ci-job:
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ndk: [r26d, r27c]
19
+ target: [arm64-v8a, "armeabi-v7a with NEON", x86_64]
20
+ build-type: [Debug, Release]
21
+ os: [ubuntu-latest]
22
+ exclude:
23
+ - ndk: r26d
24
+ build-type: Debug
25
+ steps:
26
+ - uses: actions/checkout@v4
27
+ - uses: nttld/setup-ndk@v1
28
+ id: setup-ndk
29
+ with:
30
+ ndk-version: ${{ matrix.ndk }}
31
+ add-to-path: true
32
+ - name: ci-step
33
+ env:
34
+ ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
35
+ CI_MAKE_TARGET: ""
36
+ shell: bash
37
+ run: |
38
+ . ci.sh "-DANDROID_ABI=${{ matrix.target }}|-DCMAKE_TOOLCHAIN_FILE:PATH=${{ steps.setup-ndk.outputs.ndk-path }}/build/cmake/android.toolchain.cmake|-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}"
@@ -0,0 +1,40 @@
1
+ name: ci-mingw
2
+
3
+ env:
4
+ CI: GITHUB
5
+
6
+ concurrency:
7
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
8
+ cancel-in-progress: true
9
+
10
+ on: [push]
11
+
12
+ jobs:
13
+ ci-job:
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ build-type: [Debug, Release]
19
+ dll: [ON, OFF]
20
+ without_crt: [ON, OFF]
21
+ os: [windows-latest]
22
+ exclude:
23
+ - build-type: Debug
24
+ dll: OFF
25
+ - build-type: Release
26
+ without_crt: ON
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ # - name: Update mingw64
30
+ # run: choco upgrade mingw -y --no-progress
31
+ - name: ci-step
32
+ shell: bash
33
+ env:
34
+ CI_MAKE_TARGET: smoke
35
+ run: |
36
+ echo "initial-PATH=$PATH" && \
37
+ export "PATH=/c/mingw64/bin:/c/programdata/mingw64/mingw64/bin:$PATH" && \
38
+ export MDBX_BUILD_OPTIONS=$(if [ "${{ matrix.build-type }}" = 'Debug' ]; then echo '-DMDBX_FORCE_ASSERTIONS=1'; else echo '-DNDEBUG=1'; fi) && \
39
+ export MDBX_BUILD_CXX=$(if [ "${{ matrix.without_crt }}" = 'OFF' ]; then echo 'YES'; else echo 'NO'; fi) && \
40
+ . ci.sh "-G|MinGW Makefiles|-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}|-DMDBX_BUILD_SHARED_LIBRARY:BOOL=${{ matrix.dll }}|-DMDBX_WITHOUT_MSVC_CRT:BOOL=${{ matrix.without_crt }}"
@@ -0,0 +1,34 @@
1
+ name: ci-posix
2
+
3
+ env:
4
+ CI: GITHUB
5
+
6
+ concurrency:
7
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
8
+ cancel-in-progress: true
9
+
10
+ on: [push]
11
+
12
+ jobs:
13
+ ci-job:
14
+ runs-on: ${{ matrix.os }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-24.04, macos-14, macos-26]
19
+ build-type: [Debug, Release]
20
+ # alloy: [ON, OFF]
21
+ cxx: [ON, OFF]
22
+ # exclude:
23
+ # - os: macos-14
24
+ # cxx: OFF
25
+ # alloy: ON
26
+ steps:
27
+ - uses: actions/checkout@v4
28
+ - name: ci-step
29
+ shell: bash
30
+ run: |
31
+ export CI_MAKE_TARGET=$(if [ "$(uname)" = 'Linux' ]; then echo 'check'; elif [ "${{ matrix.build-type }}" != 'Debug' ]; then echo 'test'; else echo 'smoke'; fi) && \
32
+ export MDBX_BUILD_OPTIONS=$(if [ "${{ matrix.build-type }}" = 'Debug' ]; then echo '-DMDBX_FORCE_ASSERTIONS=1'; else echo '-DNDEBUG=1'; fi) && \
33
+ export MDBX_BUILD_CXX=$(if [ "${{ matrix.cxx }}" = 'ON' ]; then echo 'YES'; else echo 'NO'; fi) && \
34
+ . ci.sh "-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}|-DMDBX_BUILD_CXX:BOOL=${{ matrix.cxx }}"
@@ -0,0 +1,45 @@
1
+ name: ci-wincxx
2
+
3
+ env:
4
+ CI: GITHUB
5
+
6
+ concurrency:
7
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
8
+ cancel-in-progress: true
9
+
10
+ on: [push]
11
+
12
+ jobs:
13
+ ci-job:
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ toolset: [v142, v143]
18
+ cxx: [11, 14, 17, 20]
19
+ target: [Win32, x64, ARM64]
20
+ build-type: [Debug, Release]
21
+ os: [windows-latest, windows-2022]
22
+ exclude:
23
+ - os: windows-latest
24
+ toolset: v142
25
+ - os: windows-latest
26
+ cxx: 11
27
+ - os: windows-2022
28
+ toolset: v143
29
+ - os: windows-2022
30
+ cxx: 20
31
+ # - target: x64
32
+ # build-type: Debug
33
+ - target: ARM64
34
+ toolset: v142
35
+ runs-on: ${{ matrix.os }}
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - name: ci-step
39
+ env:
40
+ CI_MAKE_TARGET: ""
41
+ CXXSTD: "-std=gnu++${{ matrix.cxx }}"
42
+ shell: bash
43
+ run: |
44
+ . ci.sh "-A|${{ matrix.target }}|-T|${{ matrix.toolset }}|-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}|-DCMAKE_CXX_STANDARD=${{ matrix.cxx }}" \
45
+ "--config|${{ matrix.build-type }}" "--build-config|${{ matrix.build-type }}"
@@ -0,0 +1,32 @@
1
+ name: ci-windows
2
+
3
+ env:
4
+ CI: GITHUB
5
+
6
+ concurrency:
7
+ group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
8
+ cancel-in-progress: true
9
+
10
+ on: [push]
11
+
12
+ jobs:
13
+ ci-job:
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ toolset: [v143]
18
+ dll: [ON, OFF]
19
+ without_crt: [ON, OFF]
20
+ target: [x64, Win32]
21
+ build-type: [Debug, Release]
22
+ os: [windows-latest]
23
+ runs-on: ${{ matrix.os }}
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - name: ci-step
27
+ env:
28
+ CI_MAKE_TARGET: ""
29
+ shell: bash
30
+ run: |
31
+ . ci.sh "-A|${{ matrix.target }}|-T|${{ matrix.toolset }}|-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}|-DMDBX_BUILD_SHARED_LIBRARY:BOOL=${{ matrix.dll }}|-DMDBX_WITHOUT_MSVC_CRT:BOOL=${{ matrix.without_crt }}" \
32
+ "--config|${{ matrix.build-type }}" "--build-config|${{ matrix.build-type }}"