Drop-in Apache Spark replacement written in Rust, unifying batch processing, stream processing, and compute-intensive AI workloads.
See the codeSail is a drop-in Apache Spark replacement written in Rust, unifying batch processing, stream processing, and compute-intensive AI workloads on a distributed, multimodal compute engine.
The documentation of the latest Sail version can be found here.
Sail is available as a Python package on PyPI. You can install it along with PySpark in your Python environment.
pip install pysail
pip install "pyspark-client"
You can install Sail from source to optimize performance for your specific hardware architecture. The detailed Installation Guide walks you through this process step-by-step.
If you need to deploy Sail in production environments, the Deployment Guide provides comprehensive instructions for deploying Sail on Kubernetes clusters and other infrastructure configurations.
Option 1: Command Line Interface. You can start the local Sail server using the sail command.
sail spark server --port 50051
Option 2: Python API. You can start the local Sail server using the Python API.
from pysail.spark import SparkConnectServer
server = SparkConnectServer(port=50051)
server.start(background=False)
Option 3: Kubernetes. You can deploy Sail on Kubernetes and run Sail in cluster mode for distributed processing. Please refer to the Kubernetes Deployment Guide for instructions on building the Docker image and writing the Kubernetes manifest YAML file.
kubectl apply -f sail.yaml
kubectl -n sail port-forward service/sail-spark-server 50051:50051
Once you have a running Sail server, you can connect to it in PySpark. No changes are needed in your PySpark code!
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote("sc://localhost:50051").getOrCreate()
spark.sql("SELECT 1 + 1").show()
Please refer to the Getting Started guide for further details.
Sail is designed to be compatible with Spark 3.5.x, Spark 4.x, and later versions. Existing PySpark code works out of the box once you connect your Spark client session to Sail over the Spark Connect protocol.
As a starting point, Sail ships with an experimental PySpark function compatibility check script that scans your codebase for PySpark functions and reports their Sail support status.
python -m pysail.examples.spark.compatibility_check <directory>
Experimental Use the script as a rough first pass only. The script checks whether referenced PySpark functions are implemented in Sail. It does not verify behavioral parity. It looks for functions used in DataFrame operations but does not cover Spark SQL strings.
See the Migration Guide for recommended migration practices.
Sail provides native support for the Delta Lake and Apache Iceberg table formats. It integrates with catalog providers including Apache Iceberg REST Catalog, AWS Glue, Unity Catalog, Hive Metastore, and Microsoft OneLake.
For more details on usage and best practices, see the Data Sources Guide and Catalog Guide.
Sail supports a variety of storage backends for reading and writing data, including:
See the Storage Guide for more details.
For over 15 years, Spark has been the default engine for distributed data processing, powering ETL, machine learning, and analytics pipelines across nearly every industry.
But the JVM foundation that made Spark possible is now what holds it back. Sail is built to be a familiar, performant alternative without the JVM tax.
Sail offers a drop-in replacement for Spark SQL and the Spark DataFrame API. Existing PySpark code works out of the box once you connect your Spark client session to Sail over the Spark Connect protocol.
Ready to bring your existing workloads over? Our Migration Guide shows you how.
Derived TPC-H results show that Sail outperforms Apache Spark in every query:
| Metric | Spark | Sail |
|---|---|---|
| Total Query Time | 534.78 s | 52.81 s |
| Query Speed-Up | Baseline | 176% – 2819% |
| Peak Memory Usage | 72 GB | 26 GB |
| Disk Write (Shuffle Spill) | 115 GB | 0 GB |
These results come from a derived TPC-H benchmark (22 queries, scale factor 100, Parquet format) on AWS r8g.4xlarge instances.
See the full analysis and graphs on our Benchmark Results page.
(top 24 of 80)
2,245 followers · starred Apr 2026
8,202 followers · starred Jun 2025
248 followers · starred Aug 2026
17,025 followers · starred Sep 2024
Drop-in Apache Spark replacement written in Rust, unifying batch processing, stream processing, and compute-intensive AI workloads.
See the codeSail is a drop-in Apache Spark replacement written in Rust, unifying batch processing, stream processing, and compute-intensive AI workloads on a distributed, multimodal compute engine.
The documentation of the latest Sail version can be found here.
Sail is available as a Python package on PyPI. You can install it along with PySpark in your Python environment.
pip install pysail
pip install "pyspark-client"
You can install Sail from source to optimize performance for your specific hardware architecture. The detailed Installation Guide walks you through this process step-by-step.
If you need to deploy Sail in production environments, the Deployment Guide provides comprehensive instructions for deploying Sail on Kubernetes clusters and other infrastructure configurations.
Option 1: Command Line Interface. You can start the local Sail server using the sail command.
sail spark server --port 50051
Option 2: Python API. You can start the local Sail server using the Python API.
from pysail.spark import SparkConnectServer
server = SparkConnectServer(port=50051)
server.start(background=False)
Option 3: Kubernetes. You can deploy Sail on Kubernetes and run Sail in cluster mode for distributed processing. Please refer to the Kubernetes Deployment Guide for instructions on building the Docker image and writing the Kubernetes manifest YAML file.
kubectl apply -f sail.yaml
kubectl -n sail port-forward service/sail-spark-server 50051:50051
Once you have a running Sail server, you can connect to it in PySpark. No changes are needed in your PySpark code!
from pyspark.sql import SparkSession
spark = SparkSession.builder.remote("sc://localhost:50051").getOrCreate()
spark.sql("SELECT 1 + 1").show()
Please refer to the Getting Started guide for further details.
Sail is designed to be compatible with Spark 3.5.x, Spark 4.x, and later versions. Existing PySpark code works out of the box once you connect your Spark client session to Sail over the Spark Connect protocol.
As a starting point, Sail ships with an experimental PySpark function compatibility check script that scans your codebase for PySpark functions and reports their Sail support status.
python -m pysail.examples.spark.compatibility_check <directory>
Experimental Use the script as a rough first pass only. The script checks whether referenced PySpark functions are implemented in Sail. It does not verify behavioral parity. It looks for functions used in DataFrame operations but does not cover Spark SQL strings.
See the Migration Guide for recommended migration practices.
Sail provides native support for the Delta Lake and Apache Iceberg table formats. It integrates with catalog providers including Apache Iceberg REST Catalog, AWS Glue, Unity Catalog, Hive Metastore, and Microsoft OneLake.
For more details on usage and best practices, see the Data Sources Guide and Catalog Guide.
Sail supports a variety of storage backends for reading and writing data, including:
See the Storage Guide for more details.
For over 15 years, Spark has been the default engine for distributed data processing, powering ETL, machine learning, and analytics pipelines across nearly every industry.
But the JVM foundation that made Spark possible is now what holds it back. Sail is built to be a familiar, performant alternative without the JVM tax.
Sail offers a drop-in replacement for Spark SQL and the Spark DataFrame API. Existing PySpark code works out of the box once you connect your Spark client session to Sail over the Spark Connect protocol.
Ready to bring your existing workloads over? Our Migration Guide shows you how.
Derived TPC-H results show that Sail outperforms Apache Spark in every query:
| Metric | Spark | Sail |
|---|---|---|
| Total Query Time | 534.78 s | 52.81 s |
| Query Speed-Up | Baseline | 176% – 2819% |
| Peak Memory Usage | 72 GB | 26 GB |
| Disk Write (Shuffle Spill) | 115 GB | 0 GB |
These results come from a derived TPC-H benchmark (22 queries, scale factor 100, Parquet format) on AWS r8g.4xlarge instances.
See the full analysis and graphs on our Benchmark Results page.
(top 24 of 80)
2,245 followers · starred Apr 2026
8,202 followers · starred Jun 2025
248 followers · starred Aug 2026
17,025 followers · starred Sep 2024