Developing Indexify
Install Dependencies
Before you start, this doc may be outdated. Please follow the procedure in run_tests.sh
, this is the source of truth.
Rust Compiler
Install various rust related tools -
- Rust Compiler - http://rustup.rs
- Cargo tools - clippy, rustfmt is very helpful for formating and fixing warnings.
Python Dependencies
Create a virtual env
Install the extractors
The following workaround is needed until PyO3 can detect virtualenvs in OSX and some Ubuntu versions
MAC OS
Install coreutils
Running Tests
We currently depend on the Qdrant VectorDB and Postgres to test Indexify.
Start Development Dependencies
Run Tests
Run the unit and integration tests
Running the service locally
Build the Binary
Build the server in development mode
Create a development database
Start the server
Once the binary is built start it with a default config -
Start an Extractor
Start an extractor to join the server Clone the repository
git clone https://github.com/tensorlakeai/indexify-extractors.git
cd indexify-extractors
indexify extractor start --coordinator-addr localhost:8950 --ingestion-addr localhost:8900 --extractor-path embedding-extractors/minilm-l6/minilm_l6_embedding.py:MiniLML6Extractor
Visual Studio DevContainer
Visual Studio Code Devcontainers have been setup as well. Opening the codebase in VS Studio Code should prompt opening the project in a container. Once the container is up, test that the application can be compiled and run -
make local-dev
- Install the Python Dependencies as described above.
- Compile and Run the application as described above.
Docker-compose
If you're within the dev container, you can call the docker-compose-v1 from within /usr/bin/
If docker produces a EONET error, please try to build your devcontainer prior to launching it in vscode:
devcontainer up --workspace-folder
To build a local container for testing, run the following command from the root of the project:
make build-container-dev