micropython-lib/unix-ffi
Christian Marangi d8e163bb5f unix-ffi/re: Convert to PCRE2.
PCRE is marked as EOL and won't receive any new security update.

Convert the re module to PCRE2 API to enforce security.  Additional
dependency is now needed with uctypes due to changes in how PCRE2 return
the match_data in a pointer and require special handling.

The converted module is tested with the test_re.py with no regression.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2023-11-01 10:14:36 +11:00
..
_libc all: Replace metadata.txt with manifest.py. 2022-09-05 17:50:28 +10:00
_markupbase all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
cgi all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
email.charset unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.encoders unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.errors unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.feedparser unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.header unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.internal top: Update Python formatting to black "2023 stable style". 2023-02-03 17:12:38 +11:00
email.message unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.parser unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
email.utils all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
fcntl unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
ffilib all: Replace metadata.txt with manifest.py. 2022-09-05 17:50:28 +10:00
getopt all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
gettext all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
glob glob: Fix require of os-path. 2023-02-01 12:07:28 +11:00
html.entities all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
html.parser all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
http.client top: Update Python formatting to black "2023 stable style". 2023-02-03 17:12:38 +11:00
machine top: Update Python formatting to black "2023 stable style". 2023-02-03 17:12:38 +11:00
multiprocessing unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
os all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
pwd all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
pyb all: Run black over all code. 2021-05-27 15:50:04 +10:00
re unix-ffi/re: Convert to PCRE2. 2023-11-01 10:14:36 +11:00
select all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
signal unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
socket unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
sqlite3 unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
test.support unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
time all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
timeit all: Standardise x.y.z versioning for all packages. 2023-07-23 11:48:57 +10:00
tty all: Replace metadata.txt with manifest.py. 2022-09-05 17:50:28 +10:00
ucurses unix-ffi: Move more unix-only packages to unix-ffi. 2022-09-05 17:50:42 +10:00
urllib.parse top: Update Python formatting to black "2023 stable style". 2023-02-03 17:12:38 +11:00
README.md top: Update top-level docs. 2022-12-16 17:16:03 +11:00

README.md

Unix-specific packages

These are packages that will only run on the Unix port of MicroPython, or are too big to be used on microcontrollers. There is some limited support for the Windows port too.

Note: This directory is unmaintained.

Background

The packages in this directory provide additional CPython compatibility using the host operating system's native libraries.

This is implemented either by accessing the libraries directly via libffi, or by using built-in modules that are only available on the Unix port.

In theory, this allows you to use MicroPython as a more complete drop-in replacement for CPython.

Usage

To use a unix-specific library, pass unix_ffi=True to require() in your manifest file.

require("os", unix_ffi=True) # Use the unix-ffi version instead of python-stdlib.