A Rust-accelerated, scikit-learn-compatible machine learning library — drop-in replacement with 2-18x speedups
Project description
Thermite ML
A blazing-fast, Rust-accelerated machine learning library for Python — drop-in compatible with scikit-learn.
Thermite: an exothermic reaction that burns at 2500°C. Your ML training should be just as fast.
Why Thermite?
scikit-learn is the most widely-used ML library in the world (40M+ monthly downloads), but its internals are built on NumPy/SciPy/Cython — fast for 2010, but bottlenecked by 2026 standards.
Thermite rewrites the compute-heavy core natively in Rust using explicit SIMD, Rayon multithreading, and matrixmultiply optimizations. We expose the exact same Python API you already know.
No new syntax. No migration guide. Just import thermite instead of import sklearn.
Unmatched Capabilities
- Zero-Copy Polars Integration: Feed Apache Arrow
polarsDataFrames directly into Thermite's Rust core without any conversion or data duplication. - GPU Acceleration (wgpu): Native WebGPU/CUDA hardware acceleration backend
thermite-gpu. Dispatch compute shaders for massive ensemble aggregations and matrix multiplications instantly by simply addingdevice='gpu'. - True Parallelism (No GIL): Unlike Scikit-Learn which relies on heavy multiprocess pickling via
joblib, Thermite releases the Python GIL during heavy computation.GridSearchCVandRandomizedSearchCVeffortlessly scale across all your cores with zero IPC overhead. - Native Categorical & Sparse Support: Decision Trees handle categorical features natively (bypassing One-Hot Encoding overhead).
LinearRegressionandKMeansnatively ingest and optimizescipy.sparsematrices. - Out-of-Core Learning: Memory too small? Use
.partial_fit()to trainGaussianNBorLogisticRegressionon streaming datasets incrementally. - Drop-In Compatibility Trap: If you import a function that Thermite hasn't natively ported yet, it will automatically fall back and import it from
sklearnseamlessly.
The Numbers (Performance Superiority)
To push the framework to its limits, we conducted a comprehensive benchmarking suite against scikit-learn on 100,000 samples with 20 features. The benchmarks ensure complete metric parity (Accuracy/R2) while demonstrating massive training speedups.
| Model | SK Train (s) | TH Train (s) | Train Speedup |
|---|---|---|---|
| LinearRegression | 0.015 | 0.003 | 4.65x |
| LogisticRegression | 0.012 | 0.008 | 1.63x |
| RandomForestClassifier | 7.532 | 2.368 | 3.18x |
| GradientBoostingRegressor | 28.437 | 11.798 | 2.41x |
| KMeans | 0.017 | 0.007 | 2.41x |
| MiniBatchKMeans | 0.013 | 0.005 | 2.64x |
Note: HistGradientBoosting matches the speed per tree of Cython-optimized Scikit-learn (Thermite forces 100 full trees, taking 0.75s, ~7.5ms per iteration). Test environment: M2 Apple Silicon.
Installation
pip install thermite-ml==2.6.5
Quick Start: scikit-learn Drop-In
# The API is 100% identical to scikit-learn
from thermite.ensemble import RandomForestClassifier
from thermite.model_selection import train_test_split
from thermite.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# Opt-in to Hardware Acceleration with `device='gpu'`
clf = RandomForestClassifier(n_estimators=100, n_jobs=-1, device='gpu')
clf.fit(X_train, y_train)
print(f"Accuracy: {clf.score(X_test, y_test):.4f}")
Zero-Copy Polars Integration
Traditional scikit-learn forces you to convert polars DataFrames to pandas or numpy, triggering a massive memory copy. Thermite natively ingests the underlying Apache Arrow memory buffers:
import polars as pl
from thermite.linear_model import LogisticRegression
from thermite.polars_compat import make_polars_pipeline
df = pl.read_csv("100GB_dataset.csv")
# Instantly train directly on the Polars DataFrame
model = make_polars_pipeline(LogisticRegression())
model.fit(df.select(pl.exclude("target")), df["target"])
Supported Algorithms
- Linear Models:
LinearRegression,Ridge,Lasso,LogisticRegression(Binary & Multinomial OvR),LinearSVC. - Ensembles:
RandomForestClassifier,RandomForestRegressor,GradientBoostingClassifier,GradientBoostingRegressor,HistGradientBoostingClassifier,HistGradientBoostingRegressor,IsolationForest. - Trees:
DecisionTreeClassifier,DecisionTreeRegressor. - Clustering:
KMeans,MiniBatchKMeans,DBSCAN,SpectralClustering. - Decomposition:
PCA. - Probabilistic:
GaussianNB. - Preprocessing:
StandardScaler,MinMaxScaler,OneHotEncoder,LabelEncoder. - Pipelines:
Pipeline,ColumnTransformer,GridSearchCV,RandomizedSearchCV,SuccessiveHalvingSearchCV. - Deep Learning Connectivity: Native
__dlpack__integrations for PyTorch/JAXfrom_dlpackzero-copy tensor passing. - NLP & Text:
CountVectorizer,TfidfVectorizer,Word2Vec. - AutoML: Rust native
BayesianOptimizerutilizingRidgesurrogates. - Manifold Learning:
TSNE,UMAP.
What Sets Thermite Apart
- Rust-Native & Zero-Copy: While similar projects like
Intel(R) Extension for Scikit-learntry to accelerate operations by monkey-patching Cython with daal4py, Thermite is rewritten ground-up in Rust. We achieve true zero-copy data transmission for Apache Arrow/Polars AND Deep Learning frameworks (PyTorch/JAX viaDLPack). - GPU Native without Heavy Dependencies: Unlike
RAPIDS cuMLwhich requires a massive CUDA toolkit installation and strict version matching, Thermite utilizeswgputo compile compute shaders on-the-fly, allowing it to seamlessly run GPU-accelerated code across Apple Metal, Vulkan, and DirectX 12 hardware without gigabytes of CUDA bloat. - Distributed Computing Preparedness: Thermite's Rust estimators derive
Serdeenabling high-speedbincodeserialization out-of-the-box. This natively plugs into distributed execution engines likeRayandDaskwithout the heavy overhead of Python's standardpickle. - Rust AutoML: Instead of looping cross-validation in Python, Thermite provides a fast native
BayesianOptimizer. - Native ONNX Export: Export trained core models directly to ONNX binaries with
.to_onnx()without overhead. - Advanced Data Imputation:
IterativeImputerhandles missing values dynamically via Ridge regression.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thermite_ml-2.6.5.tar.gz.
File metadata
- Download URL: thermite_ml-2.6.5.tar.gz
- Upload date:
- Size: 123.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d84a87a80238edc2a6cb81d08103ec7a80d60f970b33a7857acf06ac5026576
|
|
| MD5 |
d4ce04fe2891a8f2d80f8ef4ee3fd926
|
|
| BLAKE2b-256 |
456e781913d8322b34260b32bfb208216c7defae17643ef0d6cfad587c774dae
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5.tar.gz:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5.tar.gz -
Subject digest:
3d84a87a80238edc2a6cb81d08103ec7a80d60f970b33a7857acf06ac5026576 - Sigstore transparency entry: 2162911177
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 1.1 MB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f5771aa57a93bad73badc16b56b38f957750d8ade5ff33898b4c100b1aeb028a
|
|
| MD5 |
a87a35b66ca0ddb3228b350cfda33ea9
|
|
| BLAKE2b-256 |
d30879cab3090fc9d97aa1a126488bdc324be9ba1a6256654dbcab74d372fa40
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-win_amd64.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-win_amd64.whl -
Subject digest:
f5771aa57a93bad73badc16b56b38f957750d8ade5ff33898b4c100b1aeb028a - Sigstore transparency entry: 2162911215
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-win32.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-win32.whl
- Upload date:
- Size: 973.3 kB
- Tags: CPython 3.8+, Windows x86
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53e9face1216aac3228fbe38abd2e443300d844c9ee4e4e7689aa9bac2549df6
|
|
| MD5 |
4fb82aee930bae3eeed05454115d0a49
|
|
| BLAKE2b-256 |
b0cb8907e3669a7eb07f423e14c8bdb09a7ee584a8b7ae2df13b620edc5da1b0
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-win32.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-win32.whl -
Subject digest:
53e9face1216aac3228fbe38abd2e443300d844c9ee4e4e7689aa9bac2549df6 - Sigstore transparency entry: 2162911189
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65d20d062c03d036be20d53b367fdc7d26673353d62d3cc3320f33a14dcaadca
|
|
| MD5 |
9ddff6e2c96ad2db790f97431695f8c9
|
|
| BLAKE2b-256 |
e07e4ecb203d06137ea72d61622cdfeb91069d5611c721eae511b8c77626a4e7
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
65d20d062c03d036be20d53b367fdc7d26673353d62d3cc3320f33a14dcaadca - Sigstore transparency entry: 2162911196
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ i686
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
273ac6f22727a13362f05c0bc240fad8c38bd704d252974a536d011d41b8253e
|
|
| MD5 |
16d39bf258ad996a77308c98ffdb3eeb
|
|
| BLAKE2b-256 |
15d5380116fe7c3bf7e3e129825464b7708d5bcd27cb96b82c18c9a0a47d2c51
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl -
Subject digest:
273ac6f22727a13362f05c0bc240fad8c38bd704d252974a536d011d41b8253e - Sigstore transparency entry: 2162911221
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 1.3 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2aee2ee37e93ca52a7d7672d351d2a4faf3d52866c147eb7136e4fa36aa95fdd
|
|
| MD5 |
4ed92137ec9d594585ac8d003fb074e6
|
|
| BLAKE2b-256 |
e84f97b90ec4b8f265319b8a5d483a54dfcb9340d3a65fb4d82af7e2a442eda9
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
2aee2ee37e93ca52a7d7672d351d2a4faf3d52866c147eb7136e4fa36aa95fdd - Sigstore transparency entry: 2162911206
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.8+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ee04a17464afb81c0feda8d8e9e98853f9b901ec8571d8d02d006c32cf6df87
|
|
| MD5 |
1f429524c4ab70b938cc65ef5c793a9d
|
|
| BLAKE2b-256 |
599b0770aa049add7a36e25caaf024163b297467a656b0d9fb820d5b777d9807
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl -
Subject digest:
2ee04a17464afb81c0feda8d8e9e98853f9b901ec8571d8d02d006c32cf6df87 - Sigstore transparency entry: 2162911241
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type:
File details
Details for the file thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 1.2 MB
- Tags: CPython 3.8+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5cf16fe27ced1b5f9e0643d1c467e8c747832a3deb6ea40f23ee1cd8d90dc72
|
|
| MD5 |
e53a1a9685dc0009f8129b29b23a9e6a
|
|
| BLAKE2b-256 |
6c8af4a6eeba5da0ae04aa5203881a298847ebbed95865df22561409c8eccb98
|
Provenance
The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl:
Publisher:
release.yml on KartavyaDikshit/Thermite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl -
Subject digest:
b5cf16fe27ced1b5f9e0643d1c467e8c747832a3deb6ea40f23ee1cd8d90dc72 - Sigstore transparency entry: 2162911229
- Sigstore integration time:
-
Permalink:
KartavyaDikshit/Thermite@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Branch / Tag:
refs/tags/v2.6.5 - Owner: https://github.com/KartavyaDikshit
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@3ac88c8ead02741ec0e760d8117b70a9dced95e0 -
Trigger Event:
push
-
Statement type: