Ibis server is a server base on Python that provides the API for rewriting the queries with Modeling Definition Language (MDL) manifest and connect data source via Ibis. It is built on top of the FastAPI framework.
We still need to run the Java engine for rewriting the queries. In the future, we will redesign the modeling core of java engine to Rust and integrate the modeling core into the Ibis server.
We continuously integrate the Rust core with the Ibis server now.
The application consists of three main parts:
- ibis-server: a Python web server powered by FastAPI and Ibis
- wren-core: a modeling core written in Rust powered by Apache DataFusion
- wren-core-py: a Python adapter for the modeling core
You can follow the steps below to run the Java engine and ibis.
Create compose.yaml
file and add the following content, edit environment variables if needed (see Environment Variables)
services:
ibis:
image: ghcr.io/canner/wren-engine-ibis:latest
ports:
- "8000:8000"
environment:
- WREN_ENGINE_ENDPOINT=http://java-engine:8080
java-engine:
image: ghcr.io/canner/wren-engine:latest
expose:
- "8080"
volumes:
- ./etc:/usr/src/app/etc
Create etc
directory and create config.properties
inside the etc directory
mkdir etc
cd etc
vim config.properties
Add the following content to the config.properties
file
node.environment=production
wren.directory=/usr/src/app/etc/mdl
Run the docker compose
docker compose up
Requirements:
- Python 3.11
- casey/just
- poetry
- Rust and Cargo
Clone the repository
git clone [email protected]:Canner/wren-engine.git
Start Java engine for the feature rewriting-queries
cd example
docker compose --env-file .env up
Navigate to the ibis-server
directory
cd ibis-server
Create .env
file and fill in the environment variables (see Environment Variables)
vim .env
Install the dependencies
just install
Run the server
just run
Please see CONTRIBUTING.md for more information.