diff --git a/desktop/docs/dependencies.md b/desktop/docs/dependencies.md index 5c1b07744..9cced1f81 100644 --- a/desktop/docs/dependencies.md +++ b/desktop/docs/dependencies.md @@ -1,5 +1,9 @@ # Dependencies +* [Electron](#electron) +* [Dev dependencies](#dev) +* [Functionality](#functionality) + ## Electron [Electron](https://www.electronjs.org) is a cross-platform (Linux, Windows, @@ -73,7 +77,7 @@ Electron process. This allows us to directly use the output produced by ## Dev -See [web/docs/dependencies#DX](../../web/docs/dependencies.md#dev) for the +See [web/docs/dependencies#dev](../../web/docs/dependencies.md#dev) for the general development experience related dependencies like TypeScript etc, which are similar to that in the web code. @@ -88,7 +92,7 @@ Some extra ones specific to the code here are: ## Functionality -### Conversion +### Format conversion The main tool we use is for arbitrary conversions is FFMPEG. To bundle a (platform specific) static binary of ffmpeg with our app, we use @@ -104,20 +108,23 @@ resources (`build`) folder. This is used for thumbnail generation on Linux. On macOS, we use the `sips` CLI tool for conversion, but that is already available on the host machine, and is not bundled with our app. +### AI/ML + +[onnxruntime-node](https://github.com/Microsoft/onnxruntime) is used as the +AI/ML runtime. It powers both natural language searches (using CLIP) and face +detection (using YOLO). + +[jpeg-js](https://github.com/jpeg-js/jpeg-js#readme) is used for decoding +JPEG data into raw RGB bytes before passing it to ONNX. + +html-entities is used by the bundled clip-bpe-ts tokenizer for CLIP. + ### Watch Folders [chokidar](https://github.com/paulmillr/chokidar) is used as a file system watcher for the watch folders functionality. -### AI/ML - -- [onnxruntime-node](https://github.com/Microsoft/onnxruntime) is used for - natural language searches based on CLIP. -- html-entities is used by the bundled clip-bpe-ts tokenizer. -- [jpeg-js](https://github.com/jpeg-js/jpeg-js#readme) is used for decoding - JPEG data into raw RGB bytes before passing it to ONNX. - -## ZIP +### ZIP [node-stream-zip](https://github.com/antelle/node-stream-zip) is used for reading of large ZIP files (e.g. during imports of Google Takeout ZIPs).