Skip to main content

CinderX

PyPI - Version

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.

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.3.3.0.tar.gz (1.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.3.3.0-cp314-cp314-musllinux_1_2_x86_64.whl (29.7 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

cinderx-2026.3.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (29.3 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.3.3.0.tar.gz.

File metadata

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

File hashes

Hashes for cinderx-2026.3.3.0.tar.gz
Algorithm Hash digest
SHA256 46e2eb06e5e5a541e79c99963919f4ff35a61460ecca25d6d59c487e23552665
MD5 5242a785b141dc4875f97d1ee2eae785
BLAKE2b-256 54a808a777a7f04b06b0ae1a425c37e1b9f4117e6f76c16a09db3a365e07c198

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.3.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b656cd912875281718bd9de466d1473fbbd30a12f5eef2c6d9a112e2a83c6a7
MD5 dc4ca1a7174af5b97b9a3ce2a3fbd9ab
BLAKE2b-256 195fd06fd009dfd6c6bbb1bb1a597e95a6d162d483703ad436dbf3bff5780577

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for cinderx-2026.3.3.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ff936f482f59cd30439505d925a1b072929b02b0bd2d0111d471f4c76ab05202
MD5 7528c3a33f350ce7d0279c301c260d39
BLAKE2b-256 7d934fa2f907f9b4e0c2013b2939363ec2d81fd5cdd75b3accf303d0f5385d21

See more details on using hashes here.

Provenance

The following attestation bundles were made for cinderx-2026.3.3.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 Sentry Error logging StatusPage Status page