usearch 2.9.2 → 2.10.1

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 (172) hide show
  1. package/README.md +39 -38
  2. package/javascript/{types → dist/cjs}/usearch.d.ts +90 -115
  3. package/javascript/dist/cjs/usearch.js +531 -0
  4. package/javascript/dist/esm/usearch.d.ts +212 -0
  5. package/javascript/{usearch.js → dist/esm/usearch.js} +199 -153
  6. package/package.json +25 -23
  7. package/prebuilds/darwin-arm64+x64/usearch.node +0 -0
  8. package/prebuilds/linux-arm64/usearch.node +0 -0
  9. package/prebuilds/linux-x64/usearch.node +0 -0
  10. package/prebuilds/win32-ia32/usearch.node +0 -0
  11. package/prebuilds/win32-x64/usearch.node +0 -0
  12. package/.clang-format +0 -10
  13. package/.clang-tidy +0 -60
  14. package/.cmake-format.py +0 -19
  15. package/.dockerignore +0 -93
  16. package/.gitattributes +0 -9
  17. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -90
  18. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  19. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -64
  20. package/.github/workflows/Dockerfile.libs +0 -36
  21. package/.github/workflows/prerelease.yml +0 -331
  22. package/.github/workflows/release.yml +0 -722
  23. package/.github/workflows/update_version.sh +0 -15
  24. package/.gitmodules +0 -9
  25. package/.releaserc +0 -90
  26. package/CITATION.cff +0 -11
  27. package/CMakeLists.txt +0 -324
  28. package/CODE_OF_CONDUCT.md +0 -128
  29. package/CONTRIBUTING.md +0 -361
  30. package/Cargo.toml +0 -19
  31. package/Dockerfile +0 -16
  32. package/VERSION +0 -1
  33. package/assets/unum.png +0 -0
  34. package/assets/usearch-approaches-transparent.png +0 -0
  35. package/assets/usearch-approaches-white.png +0 -0
  36. package/assets/usearch-neighbor-types.png +0 -0
  37. package/binding.gyp +0 -87
  38. package/build.gradle +0 -204
  39. package/build.rs +0 -18
  40. package/c/CMakeLists.txt +0 -25
  41. package/c/README.md +0 -34
  42. package/c/lib.cpp +0 -358
  43. package/c/test.c +0 -382
  44. package/c/usearch.h +0 -311
  45. package/cmake/clipp.cmake +0 -7
  46. package/cmake/config.cmake.in +0 -15
  47. package/cmake/emscripten.cmake +0 -8
  48. package/cmake/jemalloc.cmake +0 -62
  49. package/cmake/pkg-config.pc.in +0 -4
  50. package/cmake/usearchConfigVersion.cmake.in +0 -20
  51. package/conanfile.py +0 -26
  52. package/cpp/CMakeLists.txt +0 -14
  53. package/cpp/README.md +0 -161
  54. package/cpp/bench.cpp +0 -618
  55. package/cpp/test.cpp +0 -323
  56. package/fp16/CMakeLists.txt +0 -176
  57. package/fp16/LICENSE +0 -11
  58. package/fp16/README.md +0 -20
  59. package/fp16/bench/alt-element.cc +0 -89
  60. package/fp16/bench/from-alt-array.cc +0 -175
  61. package/fp16/bench/from-ieee-array.cc +0 -399
  62. package/fp16/bench/ieee-element.cc +0 -272
  63. package/fp16/bench/to-alt-array.cc +0 -91
  64. package/fp16/bench/to-ieee-array.cc +0 -303
  65. package/fp16/cmake/DownloadGoogleBenchmark.cmake +0 -15
  66. package/fp16/cmake/DownloadGoogleTest.cmake +0 -15
  67. package/fp16/cmake/DownloadPSimd.cmake +0 -15
  68. package/fp16/configure.py +0 -65
  69. package/fp16/confu.yaml +0 -8
  70. package/fp16/include/fp16/__init__.py +0 -0
  71. package/fp16/include/fp16/avx.py +0 -50
  72. package/fp16/include/fp16/avx2.py +0 -53
  73. package/fp16/include/fp16/bitcasts.h +0 -92
  74. package/fp16/include/fp16/fp16.h +0 -451
  75. package/fp16/include/fp16/psimd.h +0 -131
  76. package/fp16/include/fp16.h +0 -11
  77. package/fp16/jni/Android.mk +0 -6
  78. package/fp16/jni/Application.mk +0 -4
  79. package/fp16/test/alt-from-fp32-value.cc +0 -498
  80. package/fp16/test/alt-to-fp32-bits.cc +0 -263
  81. package/fp16/test/alt-to-fp32-psimd.cc +0 -145
  82. package/fp16/test/alt-to-fp32-value.cc +0 -348
  83. package/fp16/test/alt-to-fp32x2-psimd.cc +0 -245
  84. package/fp16/test/bitcasts.cc +0 -56
  85. package/fp16/test/ieee-from-fp32-value.cc +0 -523
  86. package/fp16/test/ieee-to-fp32-bits.cc +0 -333
  87. package/fp16/test/ieee-to-fp32-psimd.cc +0 -312
  88. package/fp16/test/ieee-to-fp32-value.cc +0 -420
  89. package/fp16/test/ieee-to-fp32x2-psimd.cc +0 -541
  90. package/fp16/test/peachpy/alt-xmm-to-fp32-xmm-avx.cc +0 -96
  91. package/fp16/test/peachpy/alt-xmm-to-fp32-ymm-avx2.cc +0 -96
  92. package/fp16/test/peachpy/stubs.py +0 -38
  93. package/fp16/test/tables.cc +0 -530
  94. package/fp16/test/tables.h +0 -13
  95. package/fp16/third-party/THHalf.h +0 -92
  96. package/fp16/third-party/eigen-half.h +0 -170
  97. package/fp16/third-party/float16-compressor.h +0 -80
  98. package/fp16/third-party/half.hpp +0 -2916
  99. package/fp16/third-party/npy-halffloat.h +0 -328
  100. package/include/usearch/index.hpp +0 -3836
  101. package/include/usearch/index_dense.hpp +0 -2004
  102. package/include/usearch/index_plugins.hpp +0 -2213
  103. package/javascript/lib.cpp +0 -341
  104. package/javascript/types/usearch.d.ts.map +0 -1
  105. package/javascript/usearch.test.js +0 -74
  106. package/package-ci.json +0 -10
  107. package/pyproject.toml +0 -51
  108. package/setup.py +0 -201
  109. package/simsimd/.releaserc +0 -86
  110. package/simsimd/CONTRIBUTING.md +0 -88
  111. package/simsimd/Cargo.lock +0 -709
  112. package/simsimd/Cargo.toml +0 -44
  113. package/simsimd/LICENSE +0 -201
  114. package/simsimd/README.md +0 -317
  115. package/simsimd/binding.gyp +0 -36
  116. package/simsimd/build.rs +0 -20
  117. package/simsimd/include/simsimd/binary.h +0 -245
  118. package/simsimd/include/simsimd/complex.h +0 -174
  119. package/simsimd/include/simsimd/probability.h +0 -548
  120. package/simsimd/include/simsimd/simsimd.h +0 -465
  121. package/simsimd/include/simsimd/spatial.h +0 -1267
  122. package/simsimd/include/simsimd/types.h +0 -208
  123. package/simsimd/javascript/bench.js +0 -127
  124. package/simsimd/javascript/fallback.ts +0 -193
  125. package/simsimd/javascript/lib.c +0 -102
  126. package/simsimd/javascript/node-gyp-build.d.ts +0 -1
  127. package/simsimd/javascript/simsimd.ts +0 -124
  128. package/simsimd/javascript/test.mjs +0 -153
  129. package/simsimd/javascript/tsconfig-base.json +0 -25
  130. package/simsimd/javascript/tsconfig-cjs.json +0 -8
  131. package/simsimd/javascript/tsconfig-esm.json +0 -8
  132. package/simsimd/package-lock.json +0 -1688
  133. package/simsimd/package.json +0 -61
  134. package/simsimd/rust/benches/cosine.rs +0 -27
  135. package/simsimd/rust/benches/native.rs +0 -30
  136. package/simsimd/rust/benches/sqeuclidean.rs +0 -27
  137. package/simsimd/rust/lib.c +0 -45
  138. package/simsimd/rust/lib.rs +0 -550
  139. package/sqlite/README.md +0 -178
  140. package/sqlite/lib.cpp +0 -325
  141. package/stringzilla/CONTRIBUTING.md +0 -446
  142. package/stringzilla/Cargo.lock +0 -25
  143. package/stringzilla/Cargo.toml +0 -26
  144. package/stringzilla/LICENSE +0 -201
  145. package/stringzilla/README.md +0 -1422
  146. package/stringzilla/VERSION +0 -1
  147. package/stringzilla/assets/cover-strinzilla.jpeg +0 -0
  148. package/stringzilla/assets/meme-stringzilla-v2.jpeg +0 -0
  149. package/stringzilla/assets/meme-stringzilla-v3.jpeg +0 -0
  150. package/stringzilla/binding.gyp +0 -16
  151. package/stringzilla/build.rs +0 -87
  152. package/stringzilla/c/lib.c +0 -337
  153. package/stringzilla/cli/README.md +0 -65
  154. package/stringzilla/cli/__init__.py +0 -0
  155. package/stringzilla/cli/split.py +0 -105
  156. package/stringzilla/cli/wc.py +0 -117
  157. package/stringzilla/include/stringzilla/experimental.h +0 -845
  158. package/stringzilla/include/stringzilla/module.modulemap +0 -9
  159. package/stringzilla/include/stringzilla/stringzilla.h +0 -5370
  160. package/stringzilla/include/stringzilla/stringzilla.hpp +0 -3838
  161. package/stringzilla/javascript/lib.c +0 -125
  162. package/stringzilla/javascript/stringzilla.js +0 -22
  163. package/stringzilla/package-ci.json +0 -10
  164. package/stringzilla/package.json +0 -32
  165. package/stringzilla/rust/lib.rs +0 -873
  166. package/stringzilla/swift/StringProtocol+StringZilla.swift +0 -280
  167. package/stringzilla/swift/Test.swift +0 -60
  168. package/tsconfig.json +0 -21
  169. package/wasmer.toml +0 -12
  170. package/winlibinstaller.bat +0 -42
  171. /package/{simsimd/javascript/dist-package-cjs.json → javascript/dist/cjs/package.json} +0 -0
  172. /package/{simsimd/javascript/dist-package-esm.json → javascript/dist/esm/package.json} +0 -0
@@ -1,125 +0,0 @@
1
- /**
2
- * @file lib.c
3
- * @brief JavaScript bindings for StringZilla.
4
- * @author Ash Vardanian
5
- * @date September 18, 2023
6
- *
7
- * @copyright Copyright (c) 2023
8
- * @see NodeJS docs: https://nodejs.org/api/n-api.html
9
- */
10
- #include <stdio.h> // `printf` for debug builds
11
- #include <stdlib.h> // `malloc` to export strings into UTF-8
12
-
13
- #include <node_api.h> // `napi_*` functions
14
-
15
- #include <stringzilla/stringzilla.h> // `sz_*` functions
16
-
17
- napi_value indexOfAPI(napi_env env, napi_callback_info info) {
18
- size_t argc = 2;
19
- napi_value args[2];
20
- napi_get_cb_info(env, info, &argc, args, NULL, NULL);
21
-
22
- // Extract the C string from the JavaScript string for haystack and needle
23
- sz_string_view_t haystack = {NULL, 0};
24
- sz_string_view_t needle = {NULL, 0};
25
-
26
- // For haystack
27
- napi_get_value_string_utf8(env, args[0], NULL, 0, (size_t *)&haystack.length);
28
- haystack.start = malloc(haystack.length + 1);
29
- napi_get_value_string_utf8(env, args[0], (char *)haystack.start, haystack.length + 1, (size_t *)&haystack.length);
30
-
31
- // For needle
32
- napi_get_value_string_utf8(env, args[1], NULL, 0, (size_t *)&needle.length);
33
- needle.start = malloc(needle.length + 1);
34
- napi_get_value_string_utf8(env, args[1], (char *)needle.start, needle.length + 1, (size_t *)&needle.length);
35
-
36
- // Convert the result to JavaScript BigInt and return
37
- napi_value js_result;
38
- if (needle.length == 0) { napi_create_bigint_int64(env, 0, &js_result); }
39
- else {
40
- sz_cptr_t result = sz_find(haystack.start, haystack.length, needle.start, needle.length);
41
-
42
- // In JavaScript, if `indexOf` is unable to indexOf the specified value, then it should return -1
43
- if (result == NULL) { napi_create_bigint_int64(env, -1, &js_result); }
44
- else { napi_create_bigint_uint64(env, result - haystack.start, &js_result); }
45
- }
46
-
47
- // Cleanup
48
- free((void *)haystack.start);
49
- free((void *)needle.start);
50
- return js_result;
51
- }
52
-
53
- napi_value countAPI(napi_env env, napi_callback_info info) {
54
- size_t argc = 3;
55
- napi_value args[3];
56
- napi_get_cb_info(env, info, &argc, args, NULL, NULL);
57
-
58
- // Extract the C string from the JavaScript string for haystack and needle
59
- sz_string_view_t haystack = {NULL, 0};
60
- sz_string_view_t needle = {NULL, 0};
61
-
62
- // For haystack
63
- napi_get_value_string_utf8(env, args[0], NULL, 0, (size_t *)&haystack.length);
64
- haystack.start = malloc(haystack.length + 1);
65
- napi_get_value_string_utf8(env, args[0], (char *)haystack.start, haystack.length + 1, (size_t *)&haystack.length);
66
-
67
- // For needle
68
- napi_get_value_string_utf8(env, args[1], NULL, 0, (size_t *)&needle.length);
69
- needle.start = malloc(needle.length + 1);
70
- napi_get_value_string_utf8(env, args[1], (char *)needle.start, needle.length + 1, (size_t *)&needle.length);
71
-
72
- bool overlap = false;
73
- if (argc > 2) { napi_get_value_bool(env, args[2], &overlap); }
74
-
75
- void const *haystack_start = haystack.start, *needle_start = needle.start;
76
-
77
- size_t count = 0;
78
- if (needle.length == 0 || haystack.length == 0 || haystack.length < needle.length) { count = 0; }
79
- else if (overlap) {
80
- while (haystack.length) {
81
- sz_cptr_t ptr = sz_find(haystack.start, haystack.length, needle.start, needle.length);
82
- sz_bool_t found = ptr != NULL;
83
- sz_size_t offset = found ? (sz_size_t)(ptr - haystack.start) : haystack.length;
84
- count += found;
85
- haystack.start += offset + found;
86
- haystack.length -= offset + found;
87
- }
88
- }
89
- else {
90
- while (haystack.length) {
91
- sz_cptr_t ptr = sz_find(haystack.start, haystack.length, needle.start, needle.length);
92
- sz_bool_t found = ptr != NULL;
93
- sz_size_t offset = found ? (sz_size_t)(ptr - haystack.start) : haystack.length;
94
- count += found;
95
- haystack.start += offset + needle.length;
96
- haystack.length -= offset + needle.length * found;
97
- }
98
- }
99
-
100
- // Cleanup
101
- free((void *)haystack_start);
102
- free((void *)needle_start);
103
-
104
- // Convert the `count` to JavaScript `BigInt` and return
105
- napi_value js_count;
106
- napi_create_bigint_uint64(env, count, &js_count);
107
-
108
- return js_count;
109
- }
110
-
111
- napi_value Init(napi_env env, napi_value exports) {
112
-
113
- // Define an array of property descriptors
114
- napi_property_descriptor findDesc = {"indexOf", 0, indexOfAPI, 0, 0, 0, napi_default, 0};
115
- napi_property_descriptor countDesc = {"count", 0, countAPI, 0, 0, 0, napi_default, 0};
116
- napi_property_descriptor properties[] = {findDesc, countDesc};
117
-
118
- // Define the properties on the `exports` object
119
- size_t propertyCount = sizeof(properties) / sizeof(properties[0]);
120
- napi_define_properties(env, exports, propertyCount, properties);
121
-
122
- return exports;
123
- }
124
-
125
- NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)
@@ -1,22 +0,0 @@
1
- const compiled = require('bindings')('stringzilla');
2
-
3
- module.exports = {
4
- /**
5
- * Searches for a short string in a long one.
6
- *
7
- * @param {string} haystack
8
- * @param {string} needle
9
- * @returns {bigint}
10
- */
11
- find: compiled.find,
12
-
13
- /**
14
- * Searches for a substring in a larger string.
15
- *
16
- * @param {string} haystack
17
- * @param {string} needle
18
- * @param {boolean} overlap
19
- * @returns {bigint}
20
- */
21
- count: compiled.count
22
- };
@@ -1,10 +0,0 @@
1
- {
2
- "name": "stringzilla-ci",
3
- "version": "1.0.0",
4
- "devDependencies": {
5
- "@semantic-release/exec": "^6.0.3",
6
- "@semantic-release/git": "^10.0.1",
7
- "conventional-changelog-eslint": "^3.0.9",
8
- "semantic-release": "^21.1.2"
9
- }
10
- }
@@ -1,32 +0,0 @@
1
- {
2
- "name": "stringzilla",
3
- "version": "3.5.0",
4
- "description": "SIMD-accelerated string search, sort, hashes, fingerprints, & edit distances",
5
- "author": "Ash Vardanian",
6
- "license": "Apache 2.0",
7
- "main": "javascript/stringzilla.js",
8
- "type": "module",
9
- "repository": {
10
- "type": "git",
11
- "url": "https://github.com/ashvardanian/stringzilla.git"
12
- },
13
- "gypfile": true,
14
- "engines": {
15
- "node": "~10 >=10.20 || >=12.17"
16
- },
17
- "dependencies": {
18
- "@types/node": "^20.4.5",
19
- "bindings": "~1.2.1",
20
- "node-addon-api": "^3.0.0"
21
- },
22
- "scripts": {
23
- "test": "node --test ./scripts/test.js"
24
- },
25
- "devDependencies": {
26
- "@semantic-release/exec": "^6.0.3",
27
- "@semantic-release/git": "^10.0.1",
28
- "conventional-changelog-eslint": "^3.0.9",
29
- "semantic-release": "^21.1.2",
30
- "typescript": "^5.1.6"
31
- }
32
- }