docs/developers/roadmap.md
Codon's goal is to be as close to CPython as possible while still being fully statically compilable. While Codon already supports much of Python, there is still much to be done to fully realize its potential. Here is a high-level roadmap of the features we want to implement or explore.
Parallelism
async/await supportmultiprocessing supportCompatibility with Python 3.10+:
/ and *)match statement__dict__, __slots__
etc.) as much as possible in Codon's static contextOptional automatic switching between Codon and CPython (i.e. compile only compatible functions and leave the rest to Python)
Better error messages
Modules and incremental compilation
Memory management
GPU support
Interoperability with other languages
Currently, missing Python functionality can be easily accessed via a
from python import statement,
which is sufficient in most cases as many libraries are just thin wrappers
around a C library and/or not performance-sensitive.
However, we would like to support the following modules natively:
Python's standard library
os, sys, struct, pathlib and so onNative NumPy, Pandas, etc.: Having Codon-native versions of the most popular 3rd-party libraries would allow them to work with Codon's other features like multithreading and GPU. We're currently prioritizing NumPy and Pandas but aim to later target other popular libraries as well.
Unicode support
Python's testing infrastructure
Windows support
A sane package manager similar to Rust's Cargo
Auto-detection of installed Python libraries
Improved codon.jit library support
Fully static binary support like Go
libcodonrt (runtime library) dependency if neededlibcpp dependencyImproved Jupyter support
Plugins for Visual Studio Code, Vim, Emacs and so on