Skip to main content

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.

License: MIT Python 3.8+ Rust PyPI


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 polars DataFrames 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 adding device='gpu'.
  • True Parallelism (No GIL): Unlike Scikit-Learn which relies on heavy multiprocess pickling via joblib, Thermite releases the Python GIL during heavy computation. GridSearchCV and RandomizedSearchCV effortlessly scale across all your cores with zero IPC overhead.
  • Native Categorical & Sparse Support: Decision Trees handle categorical features natively (bypassing One-Hot Encoding overhead). LinearRegression and KMeans natively ingest and optimize scipy.sparse matrices.
  • Out-of-Core Learning: Memory too small? Use .partial_fit() to train GaussianNB or LogisticRegression on 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 sklearn seamlessly.

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/JAX from_dlpack zero-copy tensor passing.
  • NLP & Text: CountVectorizer, TfidfVectorizer, Word2Vec.
  • AutoML: Rust native BayesianOptimizer utilizing Ridge surrogates.
  • Manifold Learning: TSNE, UMAP.

What Sets Thermite Apart

  1. Rust-Native & Zero-Copy: While similar projects like Intel(R) Extension for Scikit-learn try 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 via DLPack).
  2. GPU Native without Heavy Dependencies: Unlike RAPIDS cuML which requires a massive CUDA toolkit installation and strict version matching, Thermite utilizes wgpu to 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.
  3. Distributed Computing Preparedness: Thermite's Rust estimators derive Serde enabling high-speed bincode serialization out-of-the-box. This natively plugs into distributed execution engines like Ray and Dask without the heavy overhead of Python's standard pickle.
  4. Rust AutoML: Instead of looping cross-validation in Python, Thermite provides a fast native BayesianOptimizer.
  5. Native ONNX Export: Export trained core models directly to ONNX binaries with .to_onnx() without overhead.
  6. Advanced Data Imputation: IterativeImputer handles missing values dynamically via Ridge regression.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thermite_ml-2.6.5.tar.gz (123.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

thermite_ml-2.6.5-cp38-abi3-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.8+Windows x86-64

thermite_ml-2.6.5-cp38-abi3-win32.whl (973.3 kB view details)

Uploaded CPython 3.8+Windows x86

thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

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

Hashes for thermite_ml-2.6.5.tar.gz
Algorithm Hash digest
SHA256 3d84a87a80238edc2a6cb81d08103ec7a80d60f970b33a7857acf06ac5026576
MD5 d4ce04fe2891a8f2d80f8ef4ee3fd926
BLAKE2b-256 456e781913d8322b34260b32bfb208216c7defae17643ef0d6cfad587c774dae

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermite_ml-2.6.5.tar.gz:

Publisher: release.yml on KartavyaDikshit/Thermite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for thermite_ml-2.6.5-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f5771aa57a93bad73badc16b56b38f957750d8ade5ff33898b4c100b1aeb028a
MD5 a87a35b66ca0ddb3228b350cfda33ea9
BLAKE2b-256 d30879cab3090fc9d97aa1a126488bdc324be9ba1a6256654dbcab74d372fa40

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-win_amd64.whl:

Publisher: release.yml on KartavyaDikshit/Thermite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for thermite_ml-2.6.5-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 53e9face1216aac3228fbe38abd2e443300d844c9ee4e4e7689aa9bac2549df6
MD5 4fb82aee930bae3eeed05454115d0a49
BLAKE2b-256 b0cb8907e3669a7eb07f423e14c8bdb09a7ee584a8b7ae2df13b620edc5da1b0

See more details on using hashes here.

Provenance

The following attestation bundles were made for thermite_ml-2.6.5-cp38-abi3-win32.whl:

Publisher: release.yml on KartavyaDikshit/Thermite

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 65d20d062c03d036be20d53b367fdc7d26673353d62d3cc3320f33a14dcaadca
MD5 9ddff6e2c96ad2db790f97431695f8c9
BLAKE2b-256 e07e4ecb203d06137ea72d61622cdfeb91069d5611c721eae511b8c77626a4e7

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 273ac6f22727a13362f05c0bc240fad8c38bd704d252974a536d011d41b8253e
MD5 16d39bf258ad996a77308c98ffdb3eeb
BLAKE2b-256 15d5380116fe7c3bf7e3e129825464b7708d5bcd27cb96b82c18c9a0a47d2c51

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for thermite_ml-2.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2aee2ee37e93ca52a7d7672d351d2a4faf3d52866c147eb7136e4fa36aa95fdd
MD5 4ed92137ec9d594585ac8d003fb074e6
BLAKE2b-256 e84f97b90ec4b8f265319b8a5d483a54dfcb9340d3a65fb4d82af7e2a442eda9

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for thermite_ml-2.6.5-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ee04a17464afb81c0feda8d8e9e98853f9b901ec8571d8d02d006c32cf6df87
MD5 1f429524c4ab70b938cc65ef5c793a9d
BLAKE2b-256 599b0770aa049add7a36e25caaf024163b297467a656b0d9fb820d5b777d9807

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for thermite_ml-2.6.5-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b5cf16fe27ced1b5f9e0643d1c467e8c747832a3deb6ea40f23ee1cd8d90dc72
MD5 e53a1a9685dc0009f8129b29b23a9e6a
BLAKE2b-256 6c8af4a6eeba5da0ae04aa5203881a298847ebbed95865df22561409c8eccb98

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page