<commit_before>.. _guide_quickstart:

Quickstart
==========

This guide details the steps needed to install or update the AWS SDK for Python.

The SDK is composed of two key Python packages: Botocore (the library providing the low-level
functionality shared between the Python SDK and the AWS CLI) and Boto3 (the package implementing the
Python SDK itself).

.. note::

    Documentation and developers tend to refer to the AWS SDK for Python as "Boto3," and this
    documentation often does so as well.

Installation
------------

To use Boto3, you first need to install it and its dependencies.

.. _quickstart_install_python:

Install or update Python
~~~~~~~~~~~~~~~~~~~~~~~~

Before installing Boto3, install Python 3.6 or later; support for Python 3.5 and
earlier is deprecated. After the deprecation date listed for each Python
version, new releases of Boto3 will not include support for that version of
Python. For details, including the deprecation schedule and how to update your
project to use Python 3.6, see :ref:`guide_migration_py3`.

For information about how to get the latest version of Python, see the official `Python
documentation <https://www.python.org/downloads/>`_. 

Install Boto3
~~~~~~~~~~~~~

Install the latest Boto3 release via :command:`pip`::

    pip install boto3

If your project requires a specific version of Boto3, or has compatibility concerns with
certain versions, you may provide constraints when installing::

    # Install Boto3 version 1.0 specifically
    pip install boto3==1.0.0

    # Make sure Boto3 is no older than version 1.15.0
    pip install boto3>=1.15.0

    # Avoid versions of Boto3 newer than version 1.15.3
    pip install boto3<=1.15.3

.. note::

   The latest development version of Boto3 is on `GitHub <https://github.com/boto/boto3>`_.

Configuration
-------------<commit_msg>Add info on installing with CRT support (#2812)<commit_after>.. _guide_quickstart:

Quickstart
==========

This guide details the steps needed to install or update the AWS SDK for Python.

The SDK is composed of two key Python packages: Botocore (the library providing the low-level
functionality shared between the Python SDK and the AWS CLI) and Boto3 (the package implementing the
Python SDK itself).

.. note::

    Documentation and developers tend to refer to the AWS SDK for Python as "Boto3," and this
    documentation often does so as well.

Installation
------------

To use Boto3, you first need to install it and its dependencies.

.. _quickstart_install_python:

Install or update Python
~~~~~~~~~~~~~~~~~~~~~~~~

Before installing Boto3, install Python 3.6 or later; support for Python 3.5 and
earlier is deprecated. After the deprecation date listed for each Python
version, new releases of Boto3 will not include support for that version of
Python. For details, including the deprecation schedule and how to update your
project to use Python 3.6, see :ref:`guide_migration_py3`.

For information about how to get the latest version of Python, see the official `Python
documentation <https://www.python.org/downloads/>`_. 

Install Boto3
~~~~~~~~~~~~~

Install the latest Boto3 release via :command:`pip`::

    pip install boto3

If your project requires a specific version of Boto3, or has compatibility concerns with
certain versions, you may provide constraints when installing::

    # Install Boto3 version 1.0 specifically
    pip install boto3==1.0.0

    # Make sure Boto3 is no older than version 1.15.0
    pip install boto3>=1.15.0

    # Avoid versions of Boto3 newer than version 1.15.3
    pip install boto3<=1.15.3

.. note::

   The latest development version of Boto3 is on `GitHub <https://github.com/boto/boto3>`_.

Using the AWS Common Runtime (CRT)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In addition to the default install of Boto3, you can choose to include the new `AWS Common Runtime <https://docs.aws.amazon.com/sdkref/latest/guide/common-runtime.html>`_
(CRT). The AWS CRT is a collection of modular packages that serve as a new foundation for AWS SDKs.
Each library provides better performance and minimal footprint for the functional area it
implements. Using the CRT, SDKs can share the same base code when possible, improving consistency
and throughput optimizations across AWS SDKs.

When the AWS CRT is included, Boto3 uses it to incorporate features not otherwise
available in the AWS SDK for Python.

At this time, Boto3 uses the AWS CRT's authentication package (`aws-c-auth
<https://github.com/awslabs/aws-c-auth>`_) to add support for the `AWS Signature Version 4
<https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html>`_ (sigv4) signer, which
adds authentication to your AWS requests using your security credentials (your AWS access key and
secret access key).

Boto3 doesn't use the AWS CRT by default but you can opt into using it by specifying the
:code:`crt` `extra feature <https://www.python.org/dev/peps/pep-0508/#extras>`_ when installing Boto3::

    pip install boto3[crt]

To revert to the non-CRT version of Boto3, use this command::

    pip uninstall awscrt

If you need to re-enable CRT,  reinstall :code:`boto3[crt]` to ensure you get a compatible version of :code:`awscrt`::

    pip install boto3[crt]

Configuration
-------------
{'fraction_non_alphanumeric': 0.09407069555302167, 'fraction_numerical': 0.02090459901178259, 'mean_word_length': 4.017159199237369, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 8, 'lorem ipsum': 0, 'www.': 3, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5606961', 'n_tokens_mistral': 1531, 'n_tokens_neox': 1406, 'n_words': 697}