Extension aimed at improving the performance of the Python runtime
Project description
CinderX
CinderX is a Python extension that improves the performance of the Python runtime.
Status
CinderX is under active development. It is used in production at Meta for use-cases like the Instagram Django service. It is experimental for external users. New releases are published to PyPI on a weekly basis.
Features
- JIT Compiler - Just-in-time compilation of Python bytecode to native machine code
- Static Python - A stricter form/subset of Python, for type safety and optimization
The codebase includes other features as well, such as a parallel garbage collector and a lighter weight implementation of Python interpreter frames. However these features are not compatible with the stock CPython runtime yet.
Requirements
- Python 3.14.3 or later
- Linux (x86_64)
- GCC 13+ or Clang 18+
The extension should build and import on macOS but most features will be disabled at runtime. Windows is not yet supported at all.
Installation
pip install cinderx
Using the JIT
The recommended way to start using the JIT is to do:
import cinderx.jit
cinderx.jit.auto()
This will configure the CinderX extension to automatically compile Python functions to machine code. It will track what functions are called frequently and compile the hottest ones automatically.
For more control over this process, you can pass the call count threshold to use
for compilation instead of using auto():
import cinderx.jit
# Compile functions after they are called 10 times.
cinderx.jit.compile_after_n_calls(10)
If you want to compile individual functions, you can do so manually:
import cinderx.jit
def foo(): ...
def bar(): ...
# Compile `foo` immediately.
cinderx.jit.force_compile(foo)
# Compile `bar` the next time it is called.
cinderx.jit.lazy_compile(bar)
CinderX vs Cinder
Cinder was a fork of the CPython runtime developed at Meta. It included runtime optimizations (e.g. JIT) and was specifically targeted at the Instagram Django codebase. For Python 3.10, Meta decided to turn it into a Python extension to improve compatibility with newer Python versions. This extension is now known as CinderX ("the X" is for "extension").
For Python versions 3.10 through 3.12, CinderX still depends on patches to Meta's fork of the Python runtime. Python 3.14 is the first version of stock CPython that CinderX supports.
License
CinderX is MIT licensed, see the LICENSE file.
Terms of Use
https://opensource.fb.com/legal/terms
Privacy Policy
https://opensource.fb.com/legal/privacy
Copyright © 2025 Meta Platforms, Inc.
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 cinderx-2026.4.6.0.tar.gz.
File metadata
- Download URL: cinderx-2026.4.6.0.tar.gz
- Upload date:
- Size: 2.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddc89c8df0d033937c467848781051d0052c6ff08197106cd5841cc3af4449ed
|
|
| MD5 |
3bd2f8ff8a48da49680c01441dc50966
|
|
| BLAKE2b-256 |
6cb4b637558e75880b8f386d0c662f1e7eb1460458804dd091ff8549ce2ab7c7
|
Provenance
The following attestation bundles were made for cinderx-2026.4.6.0.tar.gz:
Publisher:
publish.yml on facebookincubator/cinderx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cinderx-2026.4.6.0.tar.gz -
Subject digest:
ddc89c8df0d033937c467848781051d0052c6ff08197106cd5841cc3af4449ed - Sigstore transparency entry: 1243547866
- Sigstore integration time:
-
Permalink:
facebookincubator/cinderx@761445c649b666a00e195889efa4203ae9eefd1e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/facebookincubator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@761445c649b666a00e195889efa4203ae9eefd1e -
Trigger Event:
schedule
-
Statement type:
File details
Details for the file cinderx-2026.4.6.0-cp314-cp314-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: cinderx-2026.4.6.0-cp314-cp314-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 34.3 MB
- Tags: CPython 3.14, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d04f300ae0b82787d530e267d46815c299a9f725296a7760e2c492e5d554f6f2
|
|
| MD5 |
6dc1ff93c20bf59855afca8fea790fb2
|
|
| BLAKE2b-256 |
92596435511791eb5a19055632e0b21f11b440c9950fbfbee08e40e4898f93b2
|
Provenance
The following attestation bundles were made for cinderx-2026.4.6.0-cp314-cp314-musllinux_1_2_x86_64.whl:
Publisher:
publish.yml on facebookincubator/cinderx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cinderx-2026.4.6.0-cp314-cp314-musllinux_1_2_x86_64.whl -
Subject digest:
d04f300ae0b82787d530e267d46815c299a9f725296a7760e2c492e5d554f6f2 - Sigstore transparency entry: 1243547878
- Sigstore integration time:
-
Permalink:
facebookincubator/cinderx@761445c649b666a00e195889efa4203ae9eefd1e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/facebookincubator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@761445c649b666a00e195889efa4203ae9eefd1e -
Trigger Event:
schedule
-
Statement type:
File details
Details for the file cinderx-2026.4.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: cinderx-2026.4.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 34.0 MB
- Tags: CPython 3.14, manylinux: glibc 2.24+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77fec806539d858153c13928090d02a992333153c5e25a55b463409a6246d42a
|
|
| MD5 |
a947c759987f0d2c31d31a000783d4bd
|
|
| BLAKE2b-256 |
d6e062396f5d081a56b007a6c6f9a75d4eceb7896d053febf310d3589c7f492c
|
Provenance
The following attestation bundles were made for cinderx-2026.4.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:
Publisher:
publish.yml on facebookincubator/cinderx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cinderx-2026.4.6.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl -
Subject digest:
77fec806539d858153c13928090d02a992333153c5e25a55b463409a6246d42a - Sigstore transparency entry: 1243547873
- Sigstore integration time:
-
Permalink:
facebookincubator/cinderx@761445c649b666a00e195889efa4203ae9eefd1e -
Branch / Tag:
refs/heads/main - Owner: https://github.com/facebookincubator
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@761445c649b666a00e195889efa4203ae9eefd1e -
Trigger Event:
schedule
-
Statement type: