Skip to main content

Extension aimed at improving the performance of the Python runtime

Project description

CinderX

PyPI - Version

The CinderX logo, which is a lowercase "cinderx" with the dot in the i as a small flame, and a stylized orange x

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
  • Linux (x86_64, aarch64)
  • GCC 13+ or Clang 18+

The extension should build and import on macOS and Windows but most features will be disabled at runtime.

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").

Historically, for Python versions 3.10 through 3.12, CinderX depended 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


Download files

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

Source Distribution

cinderx-2026.5.11.0.tar.gz (2.5 MB view details)

Uploaded Source

Built Distributions

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

cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_x86_64.whl (31.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_aarch64.whl (30.9 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (30.5 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (30.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file cinderx-2026.5.11.0.tar.gz.

File metadata

  • Download URL: cinderx-2026.5.11.0.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cinderx-2026.5.11.0.tar.gz
Algorithm Hash digest
SHA256 356171969b4ea17dbf21c6798089dbcba0d388fe7ebb627c083a876779744bd2
MD5 ea3f34c82d6f2b0390acd6c0f639b358
BLAKE2b-256 124275316a77824db0e23c58875450884d4c9db466f916710a5676cbfad0a62a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.11.0.tar.gz:

Publisher: publish.yml on facebookincubator/cinderx

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

File details

Details for the file cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f40e4d26ec233cd13d240bfdf56c12a2939beac6273036902fcc9a99459cde16
MD5 df56a4b3bf778ea124def5225fe8a5d8
BLAKE2b-256 a0b1bdea13cca9e5b8e2330c56d097005c9ce85e03551246c2dce15e7efa1cef

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on facebookincubator/cinderx

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

File details

Details for the file cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 93efef050f61d133e4b9bdb62af6497c0024f630e7c448fc2ceaa96da003a194
MD5 5fbf3272c9298e6018a64c13267de525
BLAKE2b-256 2b7a699708a2544ed9ff1be52f7b35fa89e7b6023eec1a8f15fa3bfb50645d71

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.11.0-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on facebookincubator/cinderx

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

File details

Details for the file cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e81f66098e978ced7337522a246355a39c739097ff386673129c97d85565fb6
MD5 b0cfaa7cbbfec317f8f89f95f3c33b43
BLAKE2b-256 b3026ada15cd197b00138bf70bfe46aa9721afe7453d462cb27b78526eead512

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish.yml on facebookincubator/cinderx

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

File details

Details for the file cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a102d3e016b19c9ca477ba0c34549888e0a76500b05a895e89474549275aa599
MD5 b0d8be50ecba90e8efd684c0c63773b6
BLAKE2b-256 cb7a73833269bfc43e1664963d5f88529d86aa4b3edc55e6d8528daabd1b0724

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.11.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish.yml on facebookincubator/cinderx

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