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.4.27.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.4.27.0-cp314-cp314-musllinux_1_2_x86_64.whl (34.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

cinderx-2026.4.27.0-cp314-cp314-musllinux_1_2_aarch64.whl (34.0 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

cinderx-2026.4.27.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (34.0 MB view details)

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

cinderx-2026.4.27.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (33.7 MB view details)

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

File details

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

File metadata

  • Download URL: cinderx-2026.4.27.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.4.27.0.tar.gz
Algorithm Hash digest
SHA256 e91af52178d084cb2107f1ca95d190f3f81b2c4d63de07b802922ac31db259bf
MD5 cced3c7dec84da007f7571c998f31ac1
BLAKE2b-256 2db7152a36d9b7848bb3a3977cd53d81852bc4a59a4ecde19ee8db9cca406bb3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.4.27.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0e0d0045143fb0166cc5a18dc45e63c7b6cf3e9c8fa9e7d0f269755bc3f5a602
MD5 ed633772130c5925b954d1f5baff4275
BLAKE2b-256 f295d42e13a86f43cfc2ff1bc6e37471dabfb4f8f8d699130878c12c26852857

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.4.27.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6b566fa5bf6ae85c76047878e1d599c5378d97ffb61e6256c709f499acd66722
MD5 9042be00a7a8ff4940f733ffe7d3a89c
BLAKE2b-256 21151ddf6bcc180de407819fb83f4eb7a61fd9b4ec1ec50ed97cb5c0e0086872

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.4.27.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 946c4c9b43c0667cc419f1683ba15888fd29adc75425cc9fea20a529a33d6ffd
MD5 c888be4e8f5ba77b8917b0fa956530b5
BLAKE2b-256 5a010675a603e2d6b729a1f5e394445ccb88d3eb3b0c11e66264e5277628818e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.4.27.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a65f45e3cd7daa456840791abcf1db8cfcb9e0e69b1ca1e884a93f271c0990dd
MD5 982c2d4ccb42344fc579c4272ee4a19f
BLAKE2b-256 f0390e4692f9d2c0f693004ad377f2789adfeecd3f78eb1dc2a20731b3a51683

See more details on using hashes here.

Provenance

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