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
  • GCC 13+ or Clang 18+
Linux macOS Windows
x86-64 :white_check_mark: :x: :white_check_mark:
aarch64 :white_check_mark: :white_check_mark: :x:

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.18.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.18.0-cp314-cp314-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.14Windows x86-64

cinderx-2026.5.18.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.18.0-cp314-cp314-musllinux_1_2_aarch64.whl (30.8 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

cinderx-2026.5.18.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (30.4 MB view details)

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

cinderx-2026.5.18.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (30.3 MB view details)

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

cinderx-2026.5.18.0-cp314-cp314-macosx_11_0_arm64.whl (2.1 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: cinderx-2026.5.18.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.18.0.tar.gz
Algorithm Hash digest
SHA256 c6ba11aa3f1753a4cb2f674012946e7d20105ad04f79ccbd3e4e21e94597d69a
MD5 779a2560ec8d81edeba063a1642f1a0b
BLAKE2b-256 5a4bcdd9b0785a46377b1b0ce6676f2acf2678897fbad069978ea1021690b924

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.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.18.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.18.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4bd7b675638b8c30ac24ce6f753940d6ed40b4809f6eba0744b56709985e59f2
MD5 d894c9c2d7c86d8967547590e8655622
BLAKE2b-256 e0500bcee29804ceab46daad94ce733fe72a3b551342da2528187d84becda6e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.0-cp314-cp314-win_amd64.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.18.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.18.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 07638edac01747bcd0aa9948f5f9352fe9cff6eacd0a49717cbd3adc5ff33363
MD5 c98eae52a645295b76985251856235d6
BLAKE2b-256 a57980b6ac0b0d5b7a76f117bc5c960a5e73414ff24e49828f4c9105525df926

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.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.18.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.18.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 7d731cce8264afaa8676a4bc4ece994946d0c1f3a1172b53964835907cfbbc9b
MD5 0e66de6b4a75dc46c16e398b44ff1554
BLAKE2b-256 5d558ea41ccc8c9226337ea0d0e6eec6357160c032d78d5fb6ab662b5b1924dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.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.18.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.18.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c4e89b4fed83d94a5e5b87d32bf1f2398921e1f7200431ac1eee0100d5c287e6
MD5 10fb72d12a81641a733f68fe486ba31d
BLAKE2b-256 2a68369af8d971709d4bfb67a28ecc63d40d930a0c9d29715709b46387c02565

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.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.18.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.18.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fdecad686ed756d5ece058bc0f323489336dde75d71a433754cc562b84666c1b
MD5 b1b8f5c88be3786c30d6139bc0998c2f
BLAKE2b-256 504615ccfd492d2321828da660fdce673ba9b02bddece464bbe2c1a3a967c70a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.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.

File details

Details for the file cinderx-2026.5.18.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for cinderx-2026.5.18.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c0792b4860e6b2a81da0f912f3a8da77732c13c3c232f3dd86b0b4f516a68fbd
MD5 8739334f7920e89d71e9c4883f4ca3fe
BLAKE2b-256 727f3ba9e2ff47743552c6e5dcfc689a9fadc0366f390d22309783e073bdb2f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.5.18.0-cp314-cp314-macosx_11_0_arm64.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