RustPython currently supports the full Python syntax. This is “what’s left” from the Python Standard Library.
For each module’s details, check the Python Module Index.
Note that not every module here is critical or feasible for RustPython to implement. For example, the readline
Python module is heavily based around the API of GNU readline, but we use rustyline (a different readline implementation), so it probably wouldn’t be worth the effort to emulate GNU
readline on top of rustyline just to implement an infrequently used module.
In addition, some modules may just be modules written in Python that we haven’t copied over to the stdlib yet; always be sure to check whether a module is implemented in Python before trying to rewrite it in Rust. You can follow these instructions for copying over files from CPython’s Lib.
- bz2
- cProfile
- contextvars
- ctypes
- curses
- fileinput
- graphlib
- grp
- imaplib
- lzma
- mailbox
- mailcap
- mmap
- modulefinder
- pickletools
- poplib
- profile
- pstats
- pyclbr
- readline
- sitecustomize
- smtplib
- sqlite3
- symbol
- tabnanny
- tracemalloc
- turtle
- wave
- zoneinfo
- _abc
- _aix_support
- _asyncio
- _blake2
- _bootlocale
- _bootsubprocess
- _bz2
- _codecs_cn
- _codecs_hk
- _codecs_iso2022
- _codecs_jp
- _codecs_kr
- _codecs_tw
- _contextvars
- _crypt
- _ctypes
- _ctypes_test
- _curses
- _curses_panel
- _datetime
- _dbm
- _decimal
- _elementtree
- _hashlib
- _heapq
- _locale
- _lsprof
- _lzma
- _md5
- _multibytecodec
- _opcode
- _peg_parser
- _pickle
- _posixshmem
- _queue
- _sha1
- _sha256
- _sha3
- _sha512
- _sqlite3
- _ssl
- _stat
- _statistics
- _strptime
- _symtable
- _sysconfigdata__linux_x86_64-linux-gnu
- _sysconfigdata__x86_64-linux-gnu
- _testbuffer
- _tracemalloc
- _uuid
- _xxsubinterpreters
- _xxtestfuzz
- _zoneinfo