Skip to content

Commit b86b50b

Browse files
authored
chore: Document ballista features in README.md (#1418)
lint
1 parent 979d3af commit b86b50b

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

README.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,60 @@ The overall speedup is 2.9x
130130
The easiest way to get started is to run one of the standalone or distributed [examples](./examples/README.md). After
131131
that, 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

135189
Ballista supports a wide range of SQL, including CTEs, Joins, and subqueries and can execute complex queries at scale,

0 commit comments

Comments
 (0)