usearch 0.2.3 → 0.2.4
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.
- package/.github/workflows/release.yml +40 -16
- package/.github/workflows/update_version.sh +6 -0
- package/.releaserc +77 -0
- package/.vscode/settings.json +10 -1
- package/Cargo.toml +1 -1
- package/README.md +236 -218
- package/VERSION +1 -1
- package/conanfile.py +1 -1
- package/docs/Benchmarking.md +182 -0
- package/docs/Compilation.md +112 -0
- package/include/usearch/usearch.hpp +212 -116
- package/objc/include/USearchObjective.h +10 -9
- package/package.json +7 -1
- package/python/bench.py +37 -7
- package/python/lib.cpp +23 -23
- package/python/test.py +78 -36
- package/simsimd/include/simsimd/simsimd.h +31 -41
- package/src/advanced.hpp +45 -21
- package/src/bench.cpp +10 -14
- package/.github/workflows/package.json +0 -82
- package/CMakeListsInstructions.md +0 -185
|
@@ -7,6 +7,7 @@ on:
|
|
|
7
7
|
env:
|
|
8
8
|
BUILD_TYPE: Release
|
|
9
9
|
GH_TOKEN: ${{ secrets.SEMANTIC_RELEASE_TOKEN }}
|
|
10
|
+
PYTHONUTF8: 1
|
|
10
11
|
|
|
11
12
|
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
12
13
|
permissions:
|
|
@@ -16,40 +17,51 @@ permissions:
|
|
|
16
17
|
|
|
17
18
|
jobs:
|
|
18
19
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
versioning:
|
|
21
|
+
name: Semantic Release
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@v3
|
|
25
|
+
with:
|
|
26
|
+
persist-credentials: false
|
|
27
|
+
- uses: actions/setup-node@v3
|
|
28
|
+
- run: npm install --save-dev @semantic-release/exec @semantic-release/git conventional-changelog-eslint semantic-release && npx semantic-release
|
|
28
29
|
|
|
29
30
|
build_wheels:
|
|
30
31
|
name: Build Wheels for ${{ matrix.os }}
|
|
32
|
+
needs: versioning
|
|
31
33
|
runs-on: ${{ matrix.os }}
|
|
32
|
-
# needs: versioning
|
|
33
34
|
strategy:
|
|
34
35
|
matrix:
|
|
35
|
-
os: [ubuntu-20.04, macOS-11]
|
|
36
|
+
os: [ubuntu-20.04, macOS-11, windows-2022]
|
|
36
37
|
|
|
37
38
|
steps:
|
|
38
39
|
- uses: actions/checkout@v3
|
|
39
40
|
with:
|
|
40
41
|
ref: 'main'
|
|
41
42
|
- uses: actions/setup-python@v3
|
|
42
|
-
|
|
43
|
+
|
|
44
|
+
- name: Setup Docker
|
|
45
|
+
if: matrix.os != 'windows-2022'
|
|
46
|
+
uses: crazy-max/ghaction-setup-docker@v1.0.0
|
|
43
47
|
with:
|
|
44
48
|
version: 23.0.1
|
|
45
|
-
|
|
49
|
+
|
|
50
|
+
- name: Setup QEMU
|
|
51
|
+
if: matrix.os != 'windows-2022'
|
|
52
|
+
uses: docker/setup-qemu-action@v2.1.0
|
|
46
53
|
|
|
47
54
|
- name: Install CIBuildWheel
|
|
48
55
|
run: python -m pip install cibuildwheel
|
|
49
56
|
|
|
50
|
-
- name: Build wheels
|
|
57
|
+
- name: Build wheels for Windows
|
|
58
|
+
if: matrix.os == 'windows-2022'
|
|
59
|
+
run: python -m cibuildwheel
|
|
60
|
+
|
|
61
|
+
- name: Build wheels for POSIX
|
|
62
|
+
if: matrix.os != 'windows-2022'
|
|
51
63
|
run: python -m cibuildwheel
|
|
52
|
-
|
|
64
|
+
|
|
53
65
|
- uses: actions/upload-artifact@v3
|
|
54
66
|
with:
|
|
55
67
|
path: ./wheelhouse/*.whl
|
|
@@ -57,8 +69,8 @@ jobs:
|
|
|
57
69
|
|
|
58
70
|
publish_python:
|
|
59
71
|
name: Publish Python
|
|
60
|
-
runs-on: ubuntu-20.04
|
|
61
72
|
needs: build_wheels
|
|
73
|
+
runs-on: ubuntu-20.04
|
|
62
74
|
environment:
|
|
63
75
|
name: pypi
|
|
64
76
|
url: https://pypi.org/p/usearch
|
|
@@ -80,9 +92,12 @@ jobs:
|
|
|
80
92
|
|
|
81
93
|
publish_javascript:
|
|
82
94
|
name: Publish JavaScript
|
|
95
|
+
needs: versioning
|
|
83
96
|
runs-on: ubuntu-latest
|
|
84
97
|
steps:
|
|
85
98
|
- uses: actions/checkout@v3
|
|
99
|
+
with:
|
|
100
|
+
ref: 'main'
|
|
86
101
|
- run: git submodule update --init --recursive
|
|
87
102
|
- uses: actions/setup-node@v3
|
|
88
103
|
with:
|
|
@@ -96,9 +111,12 @@ jobs:
|
|
|
96
111
|
|
|
97
112
|
publish_rust:
|
|
98
113
|
name: Publish Rust
|
|
114
|
+
needs: versioning
|
|
99
115
|
runs-on: ubuntu-latest
|
|
100
116
|
steps:
|
|
101
117
|
- uses: actions/checkout@v3
|
|
118
|
+
with:
|
|
119
|
+
ref: 'main'
|
|
102
120
|
- run: git submodule update --init --recursive
|
|
103
121
|
- uses: actions-rs/toolchain@v1
|
|
104
122
|
with:
|
|
@@ -110,12 +128,15 @@ jobs:
|
|
|
110
128
|
|
|
111
129
|
publish_java:
|
|
112
130
|
name: Publish Java
|
|
131
|
+
needs: versioning
|
|
113
132
|
runs-on: ubuntu-latest
|
|
114
133
|
permissions:
|
|
115
134
|
contents: read
|
|
116
135
|
packages: write
|
|
117
136
|
steps:
|
|
118
137
|
- uses: actions/checkout@v3
|
|
138
|
+
with:
|
|
139
|
+
ref: 'main'
|
|
119
140
|
- run: git submodule update --init --recursive
|
|
120
141
|
- uses: actions/setup-java@v3
|
|
121
142
|
with:
|
|
@@ -132,9 +153,12 @@ jobs:
|
|
|
132
153
|
|
|
133
154
|
publish_swift:
|
|
134
155
|
name: Publish ObjC & Swift
|
|
156
|
+
needs: versioning
|
|
135
157
|
runs-on: macos-latest
|
|
136
158
|
steps:
|
|
137
159
|
- uses: actions/checkout@v3
|
|
160
|
+
with:
|
|
161
|
+
ref: 'main'
|
|
138
162
|
- run: git submodule update --init --recursive
|
|
139
163
|
- name: Build
|
|
140
164
|
run: swift build
|
package/.releaserc
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"branches": [
|
|
3
|
+
"main"
|
|
4
|
+
],
|
|
5
|
+
"debug": true,
|
|
6
|
+
"ci": true,
|
|
7
|
+
"dryRun": false,
|
|
8
|
+
"plugins": [
|
|
9
|
+
[
|
|
10
|
+
"@semantic-release/commit-analyzer",
|
|
11
|
+
{
|
|
12
|
+
"preset": "eslint",
|
|
13
|
+
"releaseRules": [
|
|
14
|
+
{
|
|
15
|
+
"tag": "Add",
|
|
16
|
+
"release": "minor"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"tag": "Improve",
|
|
20
|
+
"release": "patch"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"tag": "Make",
|
|
24
|
+
"release": "patch"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"tag": "Refactor",
|
|
28
|
+
"release": false
|
|
29
|
+
}
|
|
30
|
+
]
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
[
|
|
34
|
+
"@semantic-release/release-notes-generator",
|
|
35
|
+
{
|
|
36
|
+
"preset": "eslint",
|
|
37
|
+
"releaseRules": [
|
|
38
|
+
{
|
|
39
|
+
"tag": "Add",
|
|
40
|
+
"release": "minor"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"tag": "Improve",
|
|
44
|
+
"release": "patch"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"tag": "Make",
|
|
48
|
+
"release": "patch"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"tag": "Refactor",
|
|
52
|
+
"release": false
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"@semantic-release/github",
|
|
58
|
+
[
|
|
59
|
+
"@semantic-release/exec",
|
|
60
|
+
{
|
|
61
|
+
"prepareCmd": "bash .github/workflows/update_version.sh '${nextRelease.version}'"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
[
|
|
65
|
+
"@semantic-release/git",
|
|
66
|
+
{
|
|
67
|
+
"assets": [
|
|
68
|
+
"VERSION",
|
|
69
|
+
"conanfile.py",
|
|
70
|
+
"package.json",
|
|
71
|
+
"Cargo.toml",
|
|
72
|
+
],
|
|
73
|
+
"message": "Build: Released ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
]
|
|
77
|
+
}
|
package/.vscode/settings.json
CHANGED
|
@@ -102,16 +102,25 @@
|
|
|
102
102
|
},
|
|
103
103
|
"cSpell.words": [
|
|
104
104
|
"astype",
|
|
105
|
+
"BLAS",
|
|
106
|
+
"downcasted",
|
|
107
|
+
"Downcasting",
|
|
105
108
|
"dtype",
|
|
106
109
|
"equidimensional",
|
|
110
|
+
"FAISS",
|
|
107
111
|
"hashable",
|
|
112
|
+
"HNSW",
|
|
108
113
|
"jaccard",
|
|
109
114
|
"longlong",
|
|
110
115
|
"memmap",
|
|
111
116
|
"ndim",
|
|
117
|
+
"Numba",
|
|
112
118
|
"preprocess",
|
|
119
|
+
"Quickstart",
|
|
113
120
|
"simsimd",
|
|
114
|
-
"
|
|
121
|
+
"SLOC",
|
|
122
|
+
"usearch",
|
|
123
|
+
"usecases"
|
|
115
124
|
],
|
|
116
125
|
"java.configuration.updateBuildConfiguration": "interactive"
|
|
117
126
|
}
|
package/Cargo.toml
CHANGED