awscrt 0.28.2


pip install awscrt

  Latest version

Released: Oct 14, 2025


Meta
Author: Amazon Web Services, Inc
Requires Python: >=3.8

Classifiers

Programming Language
  • Python :: 3

Operating System
  • Microsoft :: Windows
  • POSIX
  • Unix
  • MacOS

AWS CRT Python

Version

Python 3 bindings for the AWS Common Runtime.

License

This library is licensed under the Apache 2.0 License.

Minimum Requirements:

  • Python 3.8+

Installation

To install from pip:

python3 -m pip install awscrt

To install from Github:

git clone https://github.com/awslabs/aws-crt-python.git
cd aws-crt-python
git submodule update --init
python3 -m pip install .

See Advanced Build Options for more info about building from source.

Fork and Multiprocessing

aws-crt-python uses background threads. This makes os.fork() unsafe. In a forked child process, all background threads vanish. The child will hang or crash when it tries to communicate with any of these (vanished) threads.

Unfortunately, Python's multiprocessing module defaults to using fork when it creates child processes (on POSIX systems except macOS, in Python versions 3.13 and earlier). multiprocessing is used under the hood by many tools that do work in parallel, including concurrent.futures.ProcessPoolExecutor, and pytorch.multiprocessing.

If you need to use multiprocessing with aws-crt-python, set it to use "spawn" or "forkserver" instead of "fork" (see docs). The Python community agrees, and multiprocessing will changes its default from "fork" to "spawn" in 3.14. It already uses "spawn" by default on macOS (because system libraries may start threads) and on Windows (because fork does not exist).

If you must use fork with aws-crt-python, you may be able to avoid hangs and crashes if you manage your threads very carefully:

  1. Release all CRT resources with background threads (e.g. clean up any io.EventLoopGroup instances).
  2. Join all CRT threads before forking (use common.join_all_native_threads() ).

For an example, see test.test_s3.py.S3RequestTest.test_fork_workaround .

Mac-Only TLS Behavior

Please note that on Mac, once a private key is used with a certificate, that certificate-key pair is imported into the Mac Keychain. All subsequent uses of that certificate will use the stored private key and ignore anything passed in programmatically. Beginning in v0.6.2, when a stored private key from the Keychain is used, the following will be logged at the "info" log level:

static: certificate has an existing certificate-key pair that was previously imported into the Keychain. Using key from Keychain instead of the one provided.

Crash Handler

You can enable the crash handler by setting the environment variable AWS_CRT_CRASH_HANDLER=1 . This will print the callstack to stderr in the event of a fatal error.

Advanced Build Options

OpenSSL and LibCrypto

aws-crt-python does not use OpenSSL for TLS. On Apple and Windows devices, the OS's default TLS library is used. On Unix devices, s2n-tls is used. But s2n-tls uses libcrypto, the cryptography math library bundled with OpenSSL.

To simplify installation, aws-crt-python has its own copy of libcrypto. This lets you install a wheel from PyPI without having OpenSSL installed. Unix wheels on PyPI come with libcrypto statically compiled in. Code to build libcrypto comes from AWS-LC. AWS-LC's code is included in the PyPI source package, and the git repository includes it as a submodule.

If you need aws-crt-python to use the libcrypto included on your system, set environment variable AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 while building from source:

AWS_CRT_BUILD_USE_SYSTEM_LIBCRYPTO=1 python3 -m pip install --no-binary :all: --verbose awscrt

( --no-binary :all: ensures you do not use the precompiled wheel from PyPI)

aws-crt-python also exposes a number of cryptographic primitives. On Unix, those depend on libcrypto as described above. On Apple and Windows OS level crypto libraries are used whenever possible. One exception to above statement is that for ED25519 keygen on Windows and Apple, libcrypto is used as no viable OS level alternative exists. In that case Unix level notes about libcrypto apply to Apple and Windows as well. Libcrypto usage for ED25519 support is enabled on Windows and Apple by default and can be disabled by setting environment variable AWS_CRT_BUILD_DISABLE_LIBCRYPTO_USE_FOR_ED25519_EVERYWHERE as follows: (Note: ED25519 keygen functions will start returning not supported error in this case)

AWS_CRT_BUILD_DISABLE_LIBCRYPTO_USE_FOR_ED25519_EVERYWHERE=1 python3 -m pip install --no-binary :all: --verbose awscrt

( --no-binary :all: ensures you do not use the precompiled wheel from PyPI)

AWS_CRT_BUILD_USE_SYSTEM_LIBS

aws-crt-python depends on several C libraries that make up the AWS Common Runtime (libaws-c-common, libaws-c-s3, etc). By default, these libraries are built along with aws-crt-python and statically compiled in (their source code is under crt/).

To skip building these dependencies, because they're already available on your system, set environment variable AWS_CRT_BUILD_USE_SYSTEM_LIBS=1 while building from source:

AWS_CRT_BUILD_USE_SYSTEM_LIBS=1 python3 -m pip install .

If these dependencies are available as both static and shared libs, you can force the static ones to be used by setting: AWS_CRT_BUILD_FORCE_STATIC_LIBS=1

Windows SDK Version

aws-crt-python builds against windows sdk version 10.0.17763.0. This is the minimal version required for TLS 1.3 support on Windows. If you need a different Windows SDK version, you can set environment variable AWS_CRT_WINDOWS_SDK_VERSION=<version> while building from source:

0.28.2 Oct 14, 2025
0.28.1 Sep 19, 2025
0.27.6 Aug 12, 2025
0.27.5 Jul 30, 2025
0.27.4 Jun 20, 2025
0.27.2 May 13, 2025
0.27.1 May 08, 2025
0.27.0 Apr 28, 2025
0.26.1 Apr 09, 2025
0.25.7 Apr 03, 2025
0.25.6 Apr 02, 2025
0.25.5 Apr 01, 2025
0.25.4 Mar 24, 2025
0.24.2 Mar 14, 2025
0.24.1 Mar 10, 2025
0.23.10 Feb 10, 2025
0.23.9 Jan 30, 2025
0.23.8 Jan 28, 2025
0.23.7 Jan 25, 2025
0.23.6 Dec 19, 2024
0.23.5 Dec 16, 2024
0.23.4 Dec 06, 2024
0.23.3 Dec 04, 2024
0.23.2 Dec 02, 2024
0.23.1 Nov 19, 2024
0.23.0 Oct 23, 2024
0.22.4 Oct 21, 2024
0.22.0 Oct 01, 2024
0.21.5 Sep 07, 2024
0.21.4 Sep 06, 2024
0.21.2 Jul 15, 2024
0.21.1 Jul 11, 2024
0.21.0 Jul 03, 2024
0.20.12 Jun 12, 2024
0.20.11 Jun 05, 2024
0.20.10 May 22, 2024
0.20.9 Apr 15, 2024
0.20.7 Apr 13, 2024
0.20.6 Mar 25, 2024
0.20.5 Feb 29, 2024
0.20.4 Feb 22, 2024
0.20.3 Jan 26, 2024
0.20.2 Jan 02, 2024
0.20.1 Dec 29, 2023
0.20.0 Dec 13, 2023
0.19.19 Nov 30, 2023
0.19.18 Nov 28, 2023
0.19.17 Nov 23, 2023
0.19.16 Nov 22, 2023
0.19.15 Nov 21, 2023
0.19.14 Nov 20, 2023
0.19.13 Nov 17, 2023
0.19.12 Nov 12, 2023
0.19.10 Nov 09, 2023
0.19.9 Nov 07, 2023
0.19.8 Nov 01, 2023
0.19.7 Oct 30, 2023
0.19.6 Oct 25, 2023
0.19.5 Oct 19, 2023
0.19.4 Oct 18, 2023
0.19.3 Oct 16, 2023
0.19.2 Oct 02, 2023
0.19.1 Aug 28, 2023
0.19.0 Aug 14, 2023
0.18.0 Aug 11, 2023
0.17.0 Jul 27, 2023
0.16.26 Jul 19, 2023
0.16.25 Jul 17, 2023
0.16.24 Jul 10, 2023
0.16.23 Jul 06, 2023
0.16.22 Jul 06, 2023
0.16.21 Jun 15, 2023
0.16.19 May 31, 2023
0.16.18 May 24, 2023
0.16.17 May 05, 2023
0.16.16 Apr 21, 2023
0.16.15 Apr 19, 2023
0.16.14 Apr 13, 2023
0.16.13 Mar 16, 2023
0.16.12 Mar 13, 2023
0.16.11 Mar 07, 2023
0.16.10 Feb 08, 2023
0.16.9 Jan 31, 2023
0.16.8 Jan 27, 2023
0.16.6 Jan 26, 2023
0.16.4 Jan 13, 2023
0.16.3 Dec 23, 2022
0.16.2 Dec 21, 2022
0.16.1 Dec 06, 2022
0.16.0 Nov 30, 2022
0.15.3 Nov 09, 2022
0.15.2 Nov 02, 2022
0.15.1 Oct 28, 2022
0.14.7 Oct 03, 2022
0.14.6 Sep 08, 2022
0.14.5 Sep 02, 2022
0.14.3 Aug 29, 2022
0.14.0 Aug 12, 2022
0.13.14 Jul 12, 2022
0.13.13 Jun 10, 2022
0.13.12 Jun 10, 2022
0.13.11 Apr 28, 2022
0.13.9 Apr 18, 2022
0.13.8 Apr 04, 2022
0.13.7 Apr 01, 2022
0.13.6 Mar 19, 2022
0.13.5 Mar 15, 2022
0.13.4 Mar 15, 2022
0.13.3 Feb 11, 2022
0.13.2 Feb 09, 2022
0.13.1 Feb 02, 2022
0.13.0 Jan 07, 2022
0.12.6 Oct 16, 2021
0.12.5 Oct 07, 2021
0.12.4 Oct 02, 2021
0.12.3 Sep 23, 2021
0.12.2 Sep 08, 2021
0.12.1 Sep 01, 2021
0.12.0 Aug 16, 2021
0.11.25 Jun 25, 2021
0.11.24 Jun 16, 2021
0.11.23 Jun 07, 2021
0.11.22 Jun 02, 2021
0.11.21 May 26, 2021
0.11.20 May 17, 2021
0.11.19 May 13, 2021
0.11.17 May 07, 2021
0.11.15 May 03, 2021
0.11.14 Apr 30, 2021
0.11.13 Apr 26, 2021
0.11.12 Apr 22, 2021
0.11.11 Apr 16, 2021
0.11.10 Apr 13, 2021
0.11.9 Apr 08, 2021
0.11.8 Apr 07, 2021
0.11.7 Apr 06, 2021
0.11.6 Apr 06, 2021
0.11.5 Mar 30, 2021
0.11.4 Mar 26, 2021
0.10.8 Feb 26, 2021
0.10.7 Feb 22, 2021
0.10.6 Feb 17, 2021
0.10.5 Feb 17, 2021
0.10.4 Feb 15, 2021
0.10.3 Feb 11, 2021
0.10.2 Jan 15, 2021
0.10.1 Jan 13, 2021
0.9.16 Dec 30, 2020
0.9.15 Dec 08, 2020
0.9.14 Dec 04, 2020
0.9.13 Nov 19, 2020
0.9.11 Nov 16, 2020
0.9.10 Oct 27, 2020
0.9.7 Oct 27, 2020
0.9.4 Oct 21, 2020
0.9.3 Oct 12, 2020
0.9.1 Oct 02, 2020
0.9.0 Sep 09, 2020
0.8.0 Aug 28, 2020
0.7.0 Aug 20, 2020
0.6.2 Aug 04, 2020
0.6.1 Jul 08, 2020
0.6.0 Jun 15, 2020
0.5.18 May 29, 2020
0.5.15 May 08, 2020
0.5.14 May 02, 2020
0.5.13 Mar 30, 2020
0.5.12 Mar 30, 2020
0.5.11 Feb 20, 2020
0.5.6 Dec 04, 2019
0.5.5 Dec 03, 2019
0.5.2 Nov 30, 2019
0.5.1 Nov 28, 2019
0.3.3 Oct 17, 2019
0.3.1 Oct 15, 2019
0.2.22 Jun 19, 2019
0.2.21 Jun 19, 2019
0.2.16 May 10, 2019
0.2.15 May 08, 2019
0.2.14 May 07, 2019
0.2.13 May 03, 2019
0.2.11 Apr 19, 2019
0.2.10 Apr 16, 2019

Wheel compatibility matrix

Platform CPython 3.8 CPython 3.9 CPython 3.10 CPython >=3.11 (abi3) CPython >=3.13 (abi3)
macosx_10_15_universal2
macosx_10_15_x86_64
manylinux1_i686
manylinux1_x86_64
manylinux2014_aarch64
manylinux2014_x86_64
manylinux_2_17_aarch64
manylinux_2_17_x86_64
manylinux_2_5_i686
manylinux_2_5_x86_64
musllinux_1_1_aarch64
musllinux_1_1_x86_64
win32
win_amd64

Files in release

awscrt-0.28.2-cp310-cp310-macosx_10_15_universal2.whl (3.2MiB)
awscrt-0.28.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.9MiB)
awscrt-0.28.2-cp310-cp310-musllinux_1_1_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp310-cp310-musllinux_1_1_x86_64.whl (3.8MiB)
awscrt-0.28.2-cp310-cp310-win32.whl (3.7MiB)
awscrt-0.28.2-cp310-cp310-win_amd64.whl (3.9MiB)
awscrt-0.28.2-cp311-abi3-macosx_10_15_universal2.whl (3.2MiB)
awscrt-0.28.2-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.9MiB)
awscrt-0.28.2-cp311-abi3-musllinux_1_1_aarch64.whl (3.5MiB)
awscrt-0.28.2-cp311-abi3-musllinux_1_1_x86_64.whl (3.7MiB)
awscrt-0.28.2-cp311-abi3-win32.whl (3.7MiB)
awscrt-0.28.2-cp311-abi3-win_amd64.whl (3.9MiB)
awscrt-0.28.2-cp313-abi3-macosx_10_15_universal2.whl (3.2MiB)
awscrt-0.28.2-cp313-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp313-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.9MiB)
awscrt-0.28.2-cp313-abi3-musllinux_1_1_aarch64.whl (3.5MiB)
awscrt-0.28.2-cp313-abi3-musllinux_1_1_x86_64.whl (3.7MiB)
awscrt-0.28.2-cp313-abi3-win32.whl (3.7MiB)
awscrt-0.28.2-cp313-abi3-win_amd64.whl (3.9MiB)
awscrt-0.28.2-cp38-cp38-macosx_10_15_x86_64.whl (1.8MiB)
awscrt-0.28.2-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.7MiB)
awscrt-0.28.2-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.9MiB)
awscrt-0.28.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl (2.6MiB)
awscrt-0.28.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (2.8MiB)
awscrt-0.28.2-cp38-cp38-musllinux_1_1_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp38-cp38-musllinux_1_1_x86_64.whl (3.8MiB)
awscrt-0.28.2-cp38-cp38-win32.whl (3.7MiB)
awscrt-0.28.2-cp38-cp38-win_amd64.whl (3.9MiB)
awscrt-0.28.2-cp39-cp39-macosx_10_15_universal2.whl (3.2MiB)
awscrt-0.28.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.9MiB)
awscrt-0.28.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl (2.6MiB)
awscrt-0.28.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (2.8MiB)
awscrt-0.28.2-cp39-cp39-musllinux_1_1_aarch64.whl (3.6MiB)
awscrt-0.28.2-cp39-cp39-musllinux_1_1_x86_64.whl (3.8MiB)
awscrt-0.28.2-cp39-cp39-win32.whl (3.7MiB)
awscrt-0.28.2-cp39-cp39-win_amd64.whl (3.9MiB)
awscrt-0.28.2.tar.gz (36.1MiB)
Extras:
Dependencies: