@@ -130,6 +130,60 @@ The overall speedup is 2.9x
130130The easiest way to get started is to run one of the standalone or distributed [ examples] ( ./examples/README.md ) . After
131131that, refer to the [ Getting Started Guide] ( ballista/client/README.md ) .
132132
133+ ## Cargo Features
134+
135+ Ballista uses Cargo features to enable optional functionality. Below are the available features for each crate.
136+
137+ ### ballista (client)
138+
139+ | Feature | Default | Description |
140+ | ------------ | ------- | -------------------------------------------------------------- |
141+ | ` standalone ` | Yes | Enables standalone mode with in-process scheduler and executor |
142+
143+ ### ballista-core
144+
145+ | Feature | Default | Description |
146+ | ------------------------- | ------- | ---------------------------------------------------------------------- |
147+ | ` arrow-ipc-optimizations ` | Yes | Enables Arrow IPC optimizations for better shuffle performance |
148+ | ` spark-compat ` | No | Enables Spark compatibility mode via datafusion-spark |
149+ | ` build-binary ` | No | Required for building binary executables (AWS S3 support, CLI parsing) |
150+ | ` force_hash_collisions ` | No | Testing-only: forces all values to hash to same value |
151+
152+ ### ballista-scheduler
153+
154+ | Feature | Default | Description |
155+ | -------------------------- | ------- | ------------------------------------------------ |
156+ | ` build-binary ` | Yes | Builds the scheduler binary with CLI and logging |
157+ | ` substrait ` | Yes | Enables Substrait plan support |
158+ | ` prometheus-metrics ` | No | Enables Prometheus metrics collection |
159+ | ` graphviz-support ` | No | Enables execution graph visualization |
160+ | ` spark-compat ` | No | Enables Spark compatibility mode |
161+ | ` keda-scaler ` | No | Kubernetes Event Driven Autoscaling integration |
162+ | ` rest-api ` | No | Enables REST API endpoints |
163+ | ` disable-stage-plan-cache ` | No | Disables caching of stage execution plans |
164+
165+ ### ballista-executor
166+
167+ | Feature | Default | Description |
168+ | ------------------------- | ------- | ----------------------------------------------------- |
169+ | ` arrow-ipc-optimizations ` | Yes | Enables Arrow IPC optimizations |
170+ | ` build-binary ` | Yes | Builds the executor binary with CLI and logging |
171+ | ` mimalloc ` | Yes | Uses mimalloc memory allocator for better performance |
172+ | ` spark-compat ` | No | Enables Spark compatibility mode |
173+
174+ ### Usage Examples
175+
176+ ``` bash
177+ # Build with standalone support (default)
178+ cargo build -p ballista
179+
180+ # Build with Substrait support
181+ cargo build -p ballista-scheduler --features substrait
182+
183+ # Build with Spark compatibility
184+ cargo build -p ballista-executor --features spark-compat
185+ ```
186+
133187## Project Status
134188
135189Ballista supports a wide range of SQL, including CTEs, Joins, and subqueries and can execute complex queries at scale,
0 commit comments