IceWeave is a high-performance, in-memory federated query engine built in Rust. It enables users to execute single SQL queries that transparently join data across PostgreSQL, MongoDB, and local CSV files. Version 4 introduces a dynamic Data Source Manager, allowing runtime uploads of initialization scripts and datasets, with instant hot-swappable engine reloads.
- Zero-Copy Federation: Query across relational, document, and flat-file data sources simultaneously without ETL pipelines.
- Dynamic Hot-Reloading (V4): Upload new
.sqlscripts,.jsscripts, and.csvfiles via the browser and instantly rebuild the in-memory engine without restarting the server. - Blazing Fast: Powered by Apache DataFusion and Apache Arrow for vectorized, in-memory execution.
- Strict Security Isolation: Designed as a read-only query layer. All underlying databases are strictly isolated within Docker container networks.
- Premium User Interface: Features a glassmorphism dashboard with 15 pre-configured example queries spanning Single Source, Cross-Source, and Full Federation scenarios.
- Core Engine: Rust, Apache DataFusion, Apache Arrow
- Web Backend: Axum, Tokio, Tower-HTTP, axum-multipart
- Database Adapters:
sqlx(PostgreSQL),mongodb(Official Rust Driver) - Infrastructure: Docker, Docker Compose
-
Start the Database Containers (Postgres and Mongo):
# Ensure Docker is running docker compose up -d -
Run the IceWeave Engine:
cargo run
-
Access the Dashboard: Open your browser and navigate to:
http://localhost:3000
IceWeave relies heavily on Docker to enforce mathematical network and storage isolation. The database instances (PostgreSQL and MongoDB) are spun up inside isolated Linux containers on a dedicated virtual bridge network. They do not expose operational ports to the internet. The Rust Axum server acts as the only gateway, firmly establishing a read-only protocol where Data Management Language (DML - like DROP or UPDATE) is syntactically stripped by DataFusion parser before execution. Modifications to the structural schema must be done intentionally through the authorized "Upload & Reload" workflow in the V4 User Interface.
For full technical details, refer to IceWeave_V4_Project_Report.md and Explanation.md.