usearch 2.9.1 → 2.10.0

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 (169) hide show
  1. package/README.md +50 -52
  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} +202 -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 -353
  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 -374
  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 -2203
  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/Cargo.lock +0 -708
  111. package/simsimd/Cargo.toml +0 -36
  112. package/simsimd/LICENSE +0 -201
  113. package/simsimd/README.md +0 -275
  114. package/simsimd/binding.gyp +0 -36
  115. package/simsimd/build.rs +0 -20
  116. package/simsimd/include/simsimd/binary.h +0 -201
  117. package/simsimd/include/simsimd/probability.h +0 -548
  118. package/simsimd/include/simsimd/simsimd.h +0 -456
  119. package/simsimd/include/simsimd/spatial.h +0 -1175
  120. package/simsimd/include/simsimd/types.h +0 -207
  121. package/simsimd/javascript/bench.js +0 -127
  122. package/simsimd/javascript/fallback.ts +0 -193
  123. package/simsimd/javascript/lib.c +0 -102
  124. package/simsimd/javascript/node-gyp-build.d.ts +0 -1
  125. package/simsimd/javascript/simsimd.ts +0 -124
  126. package/simsimd/javascript/test.mjs +0 -153
  127. package/simsimd/javascript/tsconfig-base.json +0 -25
  128. package/simsimd/javascript/tsconfig-cjs.json +0 -8
  129. package/simsimd/javascript/tsconfig-esm.json +0 -8
  130. package/simsimd/package-lock.json +0 -1688
  131. package/simsimd/package.json +0 -61
  132. package/simsimd/rust/benches/cosine.rs +0 -27
  133. package/simsimd/rust/benches/native.rs +0 -27
  134. package/simsimd/rust/benches/sqeuclidean.rs +0 -27
  135. package/simsimd/rust/lib.c +0 -68
  136. package/simsimd/rust/lib.rs +0 -232
  137. package/sqlite/README.md +0 -178
  138. package/sqlite/lib.cpp +0 -325
  139. package/stringzilla/CONTRIBUTING.md +0 -429
  140. package/stringzilla/Cargo.lock +0 -25
  141. package/stringzilla/Cargo.toml +0 -26
  142. package/stringzilla/LICENSE +0 -201
  143. package/stringzilla/README.md +0 -1281
  144. package/stringzilla/VERSION +0 -1
  145. package/stringzilla/assets/cover-strinzilla.jpeg +0 -0
  146. package/stringzilla/assets/meme-stringzilla-v2.jpeg +0 -0
  147. package/stringzilla/assets/meme-stringzilla-v3.jpeg +0 -0
  148. package/stringzilla/binding.gyp +0 -16
  149. package/stringzilla/build.rs +0 -14
  150. package/stringzilla/c/lib.c +0 -304
  151. package/stringzilla/cli/README.md +0 -48
  152. package/stringzilla/cli/split.py +0 -72
  153. package/stringzilla/cli/wc.py +0 -37
  154. package/stringzilla/include/stringzilla/experimental.h +0 -724
  155. package/stringzilla/include/stringzilla/module.modulemap +0 -9
  156. package/stringzilla/include/stringzilla/stringzilla.h +0 -5240
  157. package/stringzilla/include/stringzilla/stringzilla.hpp +0 -3830
  158. package/stringzilla/javascript/lib.c +0 -125
  159. package/stringzilla/javascript/stringzilla.js +0 -22
  160. package/stringzilla/package-ci.json +0 -10
  161. package/stringzilla/package.json +0 -32
  162. package/stringzilla/rust/lib.rs +0 -362
  163. package/stringzilla/swift/StringProtocol+StringZilla.swift +0 -280
  164. package/stringzilla/swift/Test.swift +0 -60
  165. package/tsconfig.json +0 -21
  166. package/wasmer.toml +0 -12
  167. package/winlibinstaller.bat +0 -42
  168. /package/{simsimd/javascript/dist-package-cjs.json → javascript/dist/cjs/package.json} +0 -0
  169. /package/{simsimd/javascript/dist-package-esm.json → javascript/dist/esm/package.json} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "usearch",
3
- "version": "2.9.1",
3
+ "version": "2.10.0",
4
4
  "description": "Smaller & Faster Single-File Vector Search Engine from Unum",
5
5
  "author": "Ash Vardanian (https://ashvardanian.com/)",
6
6
  "license": "Apache 2.0",
@@ -13,37 +13,39 @@
13
13
  "url": "https://github.com/unum-cloud/usearch/issues",
14
14
  "email": "info@unum.cloud"
15
15
  },
16
- "main": "javascript/usearch.js",
17
- "gypfile": true,
18
16
  "engines": {
19
17
  "node": "~10 >=10.20 || >=12.17"
20
18
  },
19
+ "files": [
20
+ "javascript/dist",
21
+ "prebuilds"
22
+ ],
21
23
  "dependencies": {
22
- "@types/node": "^20.4.5",
23
- "bindings": "~1.2.1",
24
- "node-addon-api": "^3.0.0"
24
+ "bindings": "^1.5.0",
25
+ "node-addon-api": "^3.0.0",
26
+ "node-gyp-build": "^4.8.0"
25
27
  },
26
28
  "scripts": {
27
29
  "test": "node --test ./javascript/usearch.test.js",
28
- "install": "node-gyp rebuild",
29
- "typegen": "npx tsc"
30
+ "install": "node-gyp-build",
31
+ "prebuild-single": "prebuildify --napi --strip",
32
+ "prebuild-arm64": "prebuildify --arch arm64 --napi --strip",
33
+ "prebuild-darwin-x64+arm64": "prebuildify --arch arm64+x64 --napi --strip",
34
+ "build-js": "rm -fr javascript/dist/* && tsc -p javascript/tsconfig-esm.json && tsc -p javascript/tsconfig-cjs.json && cp javascript/dist-package-esm.json javascript/dist/esm/package.json && cp javascript/dist-package-cjs.json javascript/dist/cjs/package.json"
30
35
  },
31
36
  "devDependencies": {
32
- "typescript": "^5.1.6"
37
+ "@types/bindings": "^1.5.5",
38
+ "@types/node": "^20.11.0",
39
+ "node-gyp": "^10.0.1",
40
+ "prebuildify": "^6.0.0",
41
+ "typescript": "^5.3.3"
33
42
  },
43
+ "main": "javascript/dist/cjs/usearch.js",
44
+ "module": "javascript/dist/esm/usearch.js",
34
45
  "exports": {
35
46
  ".": {
36
- "types": "./javascript/types/usearch.d.ts",
37
- "require": "./javascript/usearch.js",
38
- "import": "./javascript/usearch.js"
39
- },
40
- "./package.json": "./package.json"
41
- },
42
- "typesVersions": {
43
- "*": {
44
- "*": [
45
- "./javascript/types/usearch.d.ts"
46
- ]
47
- }
48
- }
49
- }
47
+ "import": "./javascript/dist/esm/usearch.js",
48
+ "require": "./javascript/dist/cjs/usearch.js"
49
+ }
50
+ }
51
+ }
Binary file
Binary file
package/.clang-format DELETED
@@ -1,10 +0,0 @@
1
- Language: Cpp
2
- BasedOnStyle: LLVM
3
- IndentWidth: 4
4
- TabWidth: 4
5
- NamespaceIndentation: None
6
- ColumnLimit: 120
7
- ReflowComments: true
8
- UseTab: Never
9
- PointerAlignment: Left
10
- AllowShortCaseLabelsOnASingleLine: True
package/.clang-tidy DELETED
@@ -1,60 +0,0 @@
1
- Checks: '*,
2
- -altera-id-dependent-backward-branch,
3
- -altera-struct-pack-align,
4
- -altera-unroll-loops,
5
- -android-cloexec-fopen,
6
- -bugprone-easily-swappable-parameters,
7
- -cert-err58-cpp,
8
- -concurrency-mt-unsafe,
9
- -cppcoreguidelines-avoid-const-or-ref-data-members,
10
- -cppcoreguidelines-avoid-do-while,
11
- -cppcoreguidelines-avoid-goto,
12
- -cppcoreguidelines-avoid-magic-numbers,
13
- -cppcoreguidelines-avoid-non-const-global-variables,
14
- -cppcoreguidelines-macro-usage,
15
- -cppcoreguidelines-pro-bounds-array-to-pointer-decay,
16
- -cppcoreguidelines-pro-bounds-constant-array-index,
17
- -cppcoreguidelines-pro-bounds-pointer-arithmetic,
18
- -cppcoreguidelines-pro-type-reinterpret-cast,
19
- -cppcoreguidelines-pro-type-union-access,
20
- -cppcoreguidelines-rvalue-reference-param-not-moved,
21
- -cppcoreguidelines-virtual-class-destructor,
22
- -fuchsia-default-arguments-calls,
23
- -fuchsia-default-arguments-declarations,
24
- -fuchsia-overloaded-operator,
25
- -google-explicit-constructor,
26
- -google-readability-function-size,
27
- -google-runtime-int,
28
- -google-runtime-references,
29
- -hicpp-avoid-goto,
30
- -hicpp-explicit-conversions,
31
- -hicpp-function-size,
32
- -hicpp-no-array-decay,
33
- -hicpp-no-assembler,
34
- -hicpp-signed-bitwise,
35
- -hicpp-uppercase-literal-suffix,
36
- -llvm-header-guard,
37
- -llvm-include-order,
38
- -llvmlibc-*,
39
- -misc-use-anonymous-namespace,
40
- -misc-confusable-identifiers,
41
- -misc-no-recursion,
42
- -misc-non-private-member-variables-in-classes,
43
- -modernize-concat-nested-namespaces,
44
- -modernize-type-traits,
45
- -modernize-use-nodiscard,
46
- -modernize-use-trailing-return-type,
47
- -readability-function-cognitive-complexity,
48
- -readability-function-size,
49
- -readability-identifier-length,
50
- -readability-magic-numbers,
51
- -readability-redundant-access-specifiers,
52
- -readability-simplify-boolean-expr,
53
- -readability-uppercase-literal-suffix'
54
-
55
- CheckOptions:
56
- - key: hicpp-special-member-functions.AllowSoleDefaultDtor
57
- value: 1
58
-
59
- WarningsAsErrors: '*'
60
- HeaderFilterRegex: '.*hpp$'
package/.cmake-format.py DELETED
@@ -1,19 +0,0 @@
1
- # -----------------------------
2
- # Options effecting formatting.
3
- # -----------------------------
4
- with section("format"):
5
- # How wide to allow formatted cmake files
6
- line_width = 120
7
-
8
- # How many spaces to tab for indent
9
- tab_size = 4
10
-
11
- # If true, separate flow control names from their parentheses with a space
12
- separate_ctrl_name_with_space = True
13
-
14
- # If true, separate function names from parentheses with a space
15
- separate_fn_name_with_space = False
16
-
17
- # If a statement is wrapped to more than one line, than dangle the closing
18
- # parenthesis on its own line.
19
- dangle_parens = True
package/.dockerignore DELETED
@@ -1,93 +0,0 @@
1
- # Ignore all files without an extension
2
- *
3
- !/**/
4
- !*.*
5
-
6
- # Temporary files
7
- .DS_Store
8
- *.fbin
9
- *.ibin
10
- datasets
11
- bin
12
- *.usearch
13
- .cache
14
-
15
- # C++ builds
16
- build
17
- build_release
18
- build_debug
19
- _deps
20
- CMakeCache.txt
21
- CMakeFiles
22
- cmake_install.cmake
23
-
24
- # Profiling with GProf and `perf` on Linux
25
- gmon.out
26
- perf.data
27
-
28
- # Python wrappers
29
- __pycache__
30
- *.egg-info
31
- dist/
32
- wheelhouse/
33
-
34
- # Python Environments
35
- venv/
36
-
37
- # JS wrappers
38
- package-lock.json
39
- node_modules/
40
-
41
- # Rust builds
42
- Cargo.lock
43
- target/
44
-
45
- # Java bindings
46
- .gradle
47
- *.class
48
-
49
- # ObjC and Swift
50
- .build
51
- .swiftpm
52
-
53
- # C# builds
54
- csharp/**/[Bb]in/
55
- csharp/**/[Oo]bj/
56
- csharp/lib
57
- csharp/packages
58
-
59
- # Prerequisites
60
- *.d
61
-
62
- # Compiled Object files
63
- *.slo
64
- *.lo
65
- *.o
66
- *.obj
67
-
68
- # Precompiled Headers
69
- *.gch
70
- *.pch
71
-
72
- # Compiled Dynamic libraries
73
- *.so
74
- *.dylib
75
- *.dll
76
-
77
- # Fortran module files
78
- *.mod
79
- *.smod
80
-
81
- # Allow golang go.mod
82
- !go.mod
83
-
84
- # Compiled Static libraries
85
- *.lai
86
- *.la
87
- *.a
88
- *.lib
89
-
90
- # Executables
91
- *.exe
92
- *.out
93
- *.app
package/.gitattributes DELETED
@@ -1,9 +0,0 @@
1
- #
2
- # https://help.github.com/articles/dealing-with-line-endings/
3
- #
4
- # Linux start script should use lf
5
- /gradlew text eol=lf
6
-
7
- # These are Windows script files and should use crlf
8
- *.bat text eol=crlf
9
-
@@ -1,90 +0,0 @@
1
- name: Report a bug
2
- description: Something doesn't work as expected?
3
- title: "Bug: "
4
- labels: ["bug"]
5
- assignees:
6
- - octocat
7
- body:
8
- - type: markdown
9
- attributes:
10
- value: |
11
- Thanks for taking the time to fill out this bug report!
12
- If you have a small question, it may be faster to ask the maintainers on [Discord](https://discord.gg/4mxGrenbNt).
13
- - type: textarea
14
- id: what
15
- attributes:
16
- label: Describe the bug
17
- placeholder: A short description of what the bug is.
18
- validations:
19
- required: true
20
- - type: textarea
21
- id: steps
22
- attributes:
23
- label: Steps to reproduce
24
- placeholder: Detail the steps taken to reproduce the behavior.
25
- validations:
26
- required: true
27
- - type: textarea
28
- id: expected
29
- attributes:
30
- label: Expected behavior
31
- placeholder: A clear and concise description of what you expected to happen.
32
- validations:
33
- required: true
34
- - type: input
35
- id: version
36
- attributes:
37
- label: USearch version
38
- placeholder: v0.4.X
39
- validations:
40
- required: true
41
- - type: input
42
- id: os
43
- attributes:
44
- label: Operating System
45
- placeholder: Ubuntu 22.04
46
- validations:
47
- required: true
48
- - type: dropdown
49
- id: hardware
50
- attributes:
51
- label: Hardware architecture
52
- options:
53
- - x86
54
- - Arm
55
- validations:
56
- required: true
57
- - type: dropdown
58
- id: frontend
59
- attributes:
60
- label: Which interface are you using?
61
- options:
62
- - C++ implementation
63
- - Python bindings
64
- - Other bindings
65
- validations:
66
- required: true
67
- - type: input
68
- id: contact
69
- attributes:
70
- label: Contact Details
71
- description: How can we get in touch with you if we need more info?
72
- placeholder: email@example.com
73
- validations:
74
- required: false
75
- - type: checkboxes
76
- id: duplicate
77
- attributes:
78
- label: Is there an existing issue for this?
79
- description: Please search [our issues](https://github.com/unum-cloud/usearch/issues) to see if this bug already exists.
80
- options:
81
- - label: I have searched the existing issues
82
- required: true
83
- - type: checkboxes
84
- id: terms
85
- attributes:
86
- label: Code of Conduct
87
- description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/unum-cloud/usearch/blob/main/CODE_OF_CONDUCT.md)
88
- options:
89
- - label: I agree to follow this project's Code of Conduct
90
- required: true
@@ -1,5 +0,0 @@
1
- blank_issues_enabled: false
2
- contact_links:
3
- - name: 💬 Ask on Discord
4
- url: https://discord.gg/A6wxt6dS9j
5
- about: Real-time communication with maintainers, contributors, and broader community
@@ -1,64 +0,0 @@
1
- name: Request a feature
2
- description: Something we haven't implemented yet?
3
- title: "Feature: "
4
- labels: ["enhancement"]
5
- assignees:
6
- - octocat
7
- body:
8
- - type: markdown
9
- attributes:
10
- value: |
11
- Thanks for taking the time to fill out this feature request!
12
- We have already scheduled a few features for our [next milestone](https://github.com/unum-cloud/usearch/milestones).
13
- Still, if it is something we have yet to think about, we will happily extend our [roadmap](https://github.com/orgs/unum-cloud/projects/2).
14
- It is also worth noting that choosing between speed and functionality, we generally prefer the former.
15
- So in some cases, it makes more sense to build something on top of USearch rather than patch it 🤗
16
- - type: textarea
17
- id: what
18
- attributes:
19
- label: Describe what you are looking for
20
- placeholder: A short description of what the feature would look like, ideally with code examples.
21
- validations:
22
- required: true
23
- - type: checkboxes
24
- id: check
25
- attributes:
26
- label: Can you contribute to the implementation?
27
- options:
28
- - label: I can contribute
29
- - type: dropdown
30
- id: interface
31
- attributes:
32
- label: Is your feature request specific to a certain interface?
33
- options:
34
- - It applies to everything
35
- - C++ implementation
36
- - Python bindings
37
- - Other bindings
38
- - Other
39
- validations:
40
- required: true
41
- - type: input
42
- id: contact
43
- attributes:
44
- label: Contact Details
45
- description: How can we get in touch with you if we need more info?
46
- placeholder: email@example.com
47
- validations:
48
- required: false
49
- - type: checkboxes
50
- id: duplicate
51
- attributes:
52
- label: Is there an existing issue for this?
53
- description: Please search [our issues](https://github.com/unum-cloud/usearch/issues) to see if this bug already exists.
54
- options:
55
- - label: I have searched the existing issues
56
- required: true
57
- - type: checkboxes
58
- id: terms
59
- attributes:
60
- label: Code of Conduct
61
- description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/unum-cloud/usearch/blob/main/CODE_OF_CONDUCT.md)
62
- options:
63
- - label: I agree to follow this project's Code of Conduct
64
- required: true
@@ -1,36 +0,0 @@
1
- FROM ubuntu:22.04
2
- ENV DEBIAN_FRONTEND=noninteractive
3
-
4
- ENV user_name="runner"
5
- ARG TARGETPLATFORM
6
- ARG docker_ip
7
- ARG user_pass
8
-
9
- RUN apt-get update && \
10
- apt-get install -y --no-install-recommends cmake g++-12 gcc-12 libc++-dev libc++abi-dev build-essential libjemalloc-dev openssh-client sshpass && \
11
- apt-get clean && \
12
- rm -rf /var/lib/apt/lists/*
13
-
14
- ENV CC=gcc-12
15
- ENV CXX=g++-12
16
-
17
- COPY . .
18
-
19
- RUN cmake -DCMAKE_BUILD_TYPE=Release -DUSEARCH_BUILD_LIB_C=1 -DUSEARCH_BUILD_TEST_CPP=0 -DUSEARCH_BUILD_BENCH_CPP=0 -B ./build_release
20
- RUN cmake --build ./build_release --config Release
21
-
22
- RUN if [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
23
- export arch="amd"; \
24
- elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
25
- export arch="arm"; \
26
- fi && \
27
- version=$(cat VERSION) && \
28
- mkdir -p usearch_linux_"$arch"_"$version"/DEBIAN && \
29
- touch usearch_linux_"$arch"_"$version"/DEBIAN/control && \
30
- mkdir -p usearch_linux_"$arch"_"$version"/usr/local/lib && \
31
- mkdir usearch_linux_"$arch"_"$version"/usr/local/include && \
32
- cp c/usearch.h usearch_linux_"$arch"_"$version"/usr/local/include/ && \
33
- cp build_release/libusearch_c.so usearch_linux_"$arch"_"$version"/usr/local/lib/ && \
34
- echo "Package: usearch\nVersion: $version\nMaintainer: Ash Vardanian\nArchitecture: "$arch"\nDescription: Faster & Smaller Single-File Search Engine for Vectors & Texts" > usearch_linux_"$arch"_"$version"/DEBIAN/control && \
35
- dpkg-deb --build usearch_linux_"$arch"_"$version" && \
36
- sshpass -p "$user_pass" scp -o StrictHostKeyChecking=no usearch_linux_"$arch"_"$version".deb "$user_name"@"$docker_ip":/home/$user_name/work/usearch/usearch/