You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22Lines changed: 22 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,25 @@
1
+
### v1.1.0 - 30/10/2025
2
+
3
+
### Changed
4
+
* Project structure refactored from **core + extensions** to **core + ml**.
5
+
* Imports updated accordingly:
6
+
-**core** → minimal runtime: shared interfaces, data classes, embeddings, media helpers, processor execution, and efficient batch/concurrent processing.
7
+
-**ml** → ML infrastructure and models: model loaders, base models, embedding providers (e.g., CLIP), and few-shot classifiers. Optional or experimental ML-related features can be added under `ml/providers`.
8
+
- Both modules organize contracts and data classes under their own `data/` packages.
9
+
10
+
* All `IEmbeddingProviders` must now implement `embedBatch`
11
+
*`ClipImageEmbedder` and `ClipTextEmbedder` now accept context instead of resources
12
+
*`BatchProcessor` now accepts a `Context` (uses `applicationContext` internally).
13
+
14
+
### Removed
15
+
16
+
*`Organiser` class removed.
17
+
18
+
### Notes
19
+
This release replaces the old `core` and `extensions` structure.
20
+
If you are upgrading from ≤1.0.4, update imports and Gradle dependencies.
@@ -29,12 +28,10 @@ SmartScanSdk is a modular Android SDK that powers the **SmartScan app**. It prov
29
28
* On-device ML inference
30
29
* Semantic media indexing and search
31
30
* Few shot classification
31
+
* Efficient batch processing
32
32
33
-
The SDK is **extensible**, allowing developers to add ML models or features without bloating the core runtime.
34
33
35
-
**Long-term vision:** SmartScanSdk was designed with the goal of becoming a **C++ cross-platform SDK** for **search and classification**, capable of running both **offline on edge devices** and in **bulk cloud environments**.
36
-
37
-
> **Note:** Because of its long-term cross-platform goals, some features may be experimental (extensions). However, the SDK is generally considered stable, as it is actively used in the SmartScan app, aswell as others``.
34
+
> **Note:** The SDK is designed to be flexible, but its primary use is for the SmartScan app and other apps I am developing. It is also subject to rapid experimental changes.
38
35
39
36
---
40
37
@@ -43,52 +40,60 @@ The SDK is **extensible**, allowing developers to add ML models or features with
43
40
```
44
41
SmartScanSdk/
45
42
├─ core/ # Essential functionality
46
-
│ ├─ ml/ # On-device ML infra + models
47
-
│ │ ├─ embeddings/ # Generic + CLIP embeddings
48
-
│ │ └─ models/ # Model base + loaders
49
-
│ ├─ processors/ # Batch processing + pipelines
50
-
│ └─ utils/ # General-purpose helpers
51
-
│
52
-
├─ extensions/ # Experimental / Optional features
53
-
│ ├─ embeddings/ # File-based or custom embedding stores
54
-
│ ├─ indexers/ # Media indexers
55
-
│ └─ organisers/ # Higher-level orchestration
43
+
│ ├─ data/ # Data classes and processor interfaces
44
+
│ ├─ embeddings/ # Embedding utilities and file-based stores
45
+
│ ├─ indexers/ # Image and video indexers
46
+
│ ├─ media/ # Media helpers (image/video utils)
47
+
│ └─ processors/ # Batch processing and memory helpers
56
48
│
57
-
├─ build.gradle
58
-
└─ settings.gradle
49
+
└─ ml/ # On-device ML infrastructure + models
50
+
├─ data/ # Model loaders and data classes
51
+
└─ models/ # Base ML models and providers
52
+
└─ providers/
53
+
└─ embeddings/ # Embedding providers
54
+
├─ clip/ # CLIP image & text embedder
55
+
└─ FewShotClassifier.kt # Few-shot classifier
56
+
57
+
├─ build.gradle
58
+
└─ settings.gradle
59
59
```
60
60
61
61
**Notes:**
62
62
63
-
*`core` and `extensions` are standalone Gradle modules.
63
+
*`core` and `ml` are standalone Gradle modules.
64
64
* Both are set up for **Maven publishing**.
65
+
* The structure replaces the old `core` and `extensions` module in versions ≤1.0.4
> `extensions` depends on `core`, so including it is enough if you need both.
83
+
> `ml` depends on `core`, so including it is enough if you need both.
83
84
84
85
---
85
86
86
87
## **Design Choices**
87
88
88
-
### Core and Extensions
89
+
### Core and ML
90
+
91
+
***core** → minimal runtime: shared interfaces, data classes, embeddings, media helpers, processor execution, and efficient batch/concurrent processing.
92
+
***ml** → ML infrastructure and models: model loaders, base models, embedding providers (e.g., CLIP), and few-shot classifiers. Optional or experimental ML-related features can be added under `ml/providers`.
***extensions** → implementations: indexers, retrievers, organisers, embedding stores, and other optional features.
94
+
This structure replaces the old `core` and `extensions` modules from versions 1.0.4 and below. It provides more clarity and allows consumers to use core non-ML functionality independently. For the most part, the code itself remains unchanged; only the file organization has been updated. Documentation will be updated shortly.
95
+
96
+
---
92
97
93
98
### Constraints
94
99
@@ -107,7 +112,7 @@ Supports models stored locally or bundled in the app.
107
112
108
113
### Embedding Storage
109
114
110
-
The SDK only provides a file based implementation of `IEmbeddingStore`, `FileEmbeddingStore` (in extensions) because the following benchmarks below show much better performance for the loading of embeddings
115
+
The SDK only provides a file based implementation of `IEmbeddingStore`, `FileEmbeddingStore` (in core) because the following benchmarks below show much better performance for the loading of embeddings
111
116
112
117
#### **Benchmark Summary**
113
118
@@ -138,13 +143,13 @@ ___
138
143
## **Gradle / Kotlin Setup Notes**
139
144
140
145
* Java 17 / Kotlin JVM 17
141
-
* compileSdk = 36, targetSdk = 34, minSdk = 30
142
-
*`core` exposes `androidx.core:core-ktx` and ONNX runtime
0 commit comments