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


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.4.13.0.tar.gz (2.6 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.4.13.0-cp314-cp314-musllinux_1_2_x86_64.whl (34.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

cinderx-2026.4.13.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (33.7 MB view details)

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

File details

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

File metadata

  • Download URL: cinderx-2026.4.13.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.12

File hashes

Hashes for cinderx-2026.4.13.0.tar.gz
Algorithm Hash digest
SHA256 82d37c598351f2110da6506cbf0b454d4d57a7f28b1af5bdc7c71b2b92b6c4a4
MD5 f075d1a5ece97dafbd9e41d9ed27d8cb
BLAKE2b-256 bf4651f08f9194364574a032274ee02352533fa617d0c8dd0fb68d82c8e7d8ce

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.4.13.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3cf254d08cd246f1c9673571b7fee36b9354b524bb42335633c234ca7e014991
MD5 cca752c0dd0045ad97ecc5fe95ad8970
BLAKE2b-256 c22006900703efb6e50db873d925eb7fc82e5feb01e2ab899f8e5f9320b40226

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.4.13.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79095f6ee85b4f0e7da3d43122d4d70fcacc9721e91b7574a59721352a3d23f8
MD5 194488d172f06d52f9bf68fc4ca3f685
BLAKE2b-256 44ae0f88c681ab96051d37a33ca87962e7a292ce1feeadb9b4a2de3e4cb705f6

See more details on using hashes here.

Provenance

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

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