-
Notifications
You must be signed in to change notification settings - Fork 3
Development
Development with / to vitrivr-engine has various facettes:
- Contributing to vitrivr-engine
- Developing an application using vitrivr-engine as a dependency
- Building a client to vitrivr-engine (possibly a UI)
If you want to contribute to vitrivr-engine, you are more than welcome to do so. There is a list of good first issues, if you want to start there or, just pick one of the open issues. In case your contribution would cover something new, it is best to first open an issue and assign yourself to it, such that we can integrate your work better.
- JDK 21 or higher, e.g. OpenJDK
- Cottontail >0.16.5
- An IDE (e.g. JetBrains IntellIJ IDEA Community )
- A basic understanding of Kotlin
- An understanding on how vitrivr-engine works. Read More
The project is set up as a multimodule Kotlin project:
Module | Description | Maven Dependency |
---|---|---|
vitrivr-engine-core |
The core library of the project, which provides basic interfaces & classes. | Yes |
vtirivr-engine-query |
Query / retrieval related extension to the core library with various retrievers and data manipulation operators. | Yes |
vitrivr-engine-index |
Indexing / ingestion related extension to the core library with various decoders and segmenters. | Yes |
vitrivr-engine-module-cottontaildb |
The database driver for the CottontailDB database, used for NNNS and other queries. | Yes |
vitrivr-engine-module-features |
Extension that contains specific indexing and retrieval implementations such as fulltext, colour, etc. | Yes |
vitrivr-engine-module-m3d |
Extension related to 3d model indexing and retrieval. Contains various feature modules and capability to process meshes. | Yes |
vitrivr-engine-module-fes |
Extension that can be used to harnes feature extraction provided by an external ML model server. Requires local generation of bindings: ./gradlew :vitrivr-engine-module-fes:generateFESClient
|
Yes |
vitrivr-engine-server |
A Javalin powered server providing an OpenApi documented REST API for both, ingestion and querying and a CLI, essentially the runtime of the project | No |
If you want to build your own application which either entirely relies, or partially builds on vitrivr-engine, you can add the vitrivr-engine dependencies:
Releases: Gradle Groovy:
mavenCentral()
Snapshots: Gradle Groovy:
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
Dependencies: Add one or multiple of the following to your dependencies:
implementation group: 'org.vitrivr', name: 'vitrivr-engine-core', version: '0.0.1-SNAPSHOT'
implementation group: 'org.vitrivr', name: 'vitrivr-engine-index', version: '0.0.1-SNAPSHOT'
implementation group: 'org.vitrivr', name: 'vitrivr-engine-module-features', version: '0.0.1-SNAPSHOT'
implementation group: 'org.vitrivr', name: 'vitrivr-engine-query', version: '0.0.1-SNAPSHOT'
implementation group: 'org.vitrivr', name: 'vitrivr-engine-module-cottontaildb', version: '0.0.1-SNAPSHOT'
implementation group: 'org.vitrivr', name: 'vitrivr-engine-module-m3d', version: '0.0.1-SNAPSHOT'
Please refer to the releases to find a list of releases (excludig snapshots).
The intended way to facilitate a client using vitrivr-engine is via the OpenApi Specification. However, this requires a running instance of vitrivr-engine as a prerequisite. Using the openapi-generator, one can generate client-facing code for the desired setup.
Found an issue in the wiki? Post it!
Have a question? Ask it
Disclaimer: Please keep in mind, vitrivr and vitrivr-engine are predominantly research prototypes.