🏆 A ranked list of awesome Python open-source libraries & tools. Updated weekly.
This curated list contains 230 awesome open-source projects with a total of 770K stars grouped into 25 categories. All projects are ranked by a project-quality score, which is calculated based on various metrics automatically collected from GitHub and different package managers. If you like to add or update projects, feel free to open an issue, submit a pull request, or directly edit the projects.yaml. Contributions are very welcome!
🧙♂️ Discover other best-of lists or create your own.
📫 Subscribe to our newsletter for updates and trending projects.
- Data Serialization 14 projects
- Data Structures 8 projects
- Data Validation 12 projects
- Algorithms & Design Patterns 3 projects
- Date & Time Utilities 9 projects
- File & Path Utilities 9 projects
- Compatiblity 7 projects
- Cryptography 7 projects
- Infrastructure & DevOps 15 projects
- Process Utilities 4 projects
- Asynchronous Programming 3 projects
- Configuration 6 projects
- CLI Development 17 projects
- Development Tools 1 projects
- Data Caching 3 projects
- GUI Development 9 projects
- Computer & Machine Vision 1 projects
- Machine Learning & Data Engineering 1 projects
- Text Data 5 projects
- Web Development 1 projects
- Database Clients 55 projects
- File Formats 3 projects
- Code Inspection 4 projects
- General Utilities 13 projects
- Python Implementations 6 projects
- Others 17 projects
- 🥇🥈🥉 Combined project-quality score
- ⭐️ Star count from GitHub
- 🐣 New project (less than 6 months old)
- 💤 Inactive project (6 months no activity)
- 💀 Dead project (12 months no activity)
- 📈📉 Project is trending up or down
- ➕ Project was recently added
- ❗️ Warning (e.g. missing/risky license)
- 👨💻 Contributors count from GitHub
- 🔀 Fork count from GitHub
- 📋 Issue count from GitHub
- ⏱️ Last update timestamp on package manager
- 📥 Download count from package manager
- 📦 Number of dependent projects
flatbuffers (🥇35 · ⭐ 16K) - FlatBuffers: Memory Efficient Serialization Library. Apache-2
ultrajson (🥈33 · ⭐ 3.2K) - Ultra fast JSON decoder and encoder written in C with Python bindings. BSD-3
marshmallow (🥈32 · ⭐ 5.5K) - A lightweight library for converting complex objects to and from.. MIT
simplejson (🥈32 · ⭐ 1.4K) - simplejson is a simple, fast, extensible JSON encoder/decoder for.. MIT
msgpack (🥈31 · ⭐ 1.4K) - MessagePack serializer implementation for Python msgpack.org[Python]. Apache-2
cloudpickle (🥉30 · ⭐ 930) - Extended pickling support for Python objects. BSD-3
jsonpickle (🥉30 · ⭐ 910) - Python library for serializing any arbitrary object graph into JSON... BSD-3
orjson (🥉28 · ⭐ 2K) - Fast, correct Python JSON library supporting dataclasses, datetimes,.. Apache-2
python-rapidjson (🥉25 · ⭐ 420) - Python wrapper around rapidjson. MIT
pysimdjson (🥉24 · ⭐ 450) - Python bindings for the simdjson project. MIT
pyrsistent (🥇33 · ⭐ 1.5K) - Persistent/Immutable/Functional data structures for Python. MIT
python-sortedcontainers (🥈28 · ⭐ 2.2K) - Python Sorted Container Types: Sorted List, Sorted.. Apache-2
munch (🥉26 · ⭐ 480) - A Munch is a Python dictionary that provides attribute-style access (a la.. MIT
python-box (🥉25 · ⭐ 1.7K) - Python dictionaries with advanced dot notation access. MIT
immutables (🥉25 · ⭐ 830) - A high-performance immutable mapping type for Python. Apache-2
ordered-set (🥉24 · ⭐ 120 · 💤) - A mutable set that remembers the order of its entries. One of.. MIT
voluptuous (🥈30 · ⭐ 1.7K) - CONTRIBUTIONS ONLY: Voluptuous, despite the name, is a Python data.. BSD-3
validators (🥈30 · ⭐ 500) - Python Data Validation for Humans. MIT
jsonschema (🥉29 · ⭐ 3.2K · 📉) - An(other) implementation of JSON Schema for Python. MIT
strictyaml (🥉24 · ⭐ 870) - Type-safe YAML parser and validator. MIT
Show 2 hidden projects...
- schematics (🥈30 · ⭐ 2.4K · 💀) - Python Data Structures for Humans.
BSD-3
- valideer (🥉19 · ⭐ 240 · 💀) - Lightweight data validation and adaptation Python library.
MIT
transitions (🥇29 · ⭐ 3.7K) - A lightweight, object-oriented finite state machine implementation.. MIT
algorithms (🥉26 · ⭐ 19K) - Minimal examples of data structures and algorithms in Python. MIT
Show 1 hidden projects...
python-dateutil (🥇35 · ⭐ 1.6K) - Useful extensions to the standard Python datetime features. Apache-2
dateparser (🥈31 · ⭐ 1.8K) - python parser for human readable dates. BSD-3
parsedatetime (🥉27 · ⭐ 600 · 💤) - Parse human-readable date/time strings. Apache-2
tzlocal (🥉27 · ⭐ 140 · 💤) - A Python module that tries to figure out what your local timezone is. MIT
appdirs (🥈31 · ⭐ 730) - A small Python module for determining appropriate platform-specific dirs,.. MIT
pyfilesystem2 (🥈27 · ⭐ 1.3K) - Python's Filesystem abstraction layer. MIT
scandir (🥈27 · ⭐ 470) - Better directory iterator and faster os.walk(), now in the Python 3.5.. BSD-3
Show 3 hidden projects...
typing (🥈30 · ⭐ 910) - Work related to PEP 484: typing.py and typing_extensions.py (both.. Python-2.0
dataclasses (🥉27 · ⭐ 500) - A backport of the dataclasses module for Python 3.6. Apache-2
Show 3 hidden projects...
- futures (🥉27 · ⭐ 220 · 💀) - Backport of the concurrent.futures package to Python 2.6 and 2.7.
Python-2.0
- pathlib2 (🥉26 · ⭐ 63 · 💀) - Backport of pathlib aiming to support the full stdlib Python API. As..
MIT
- contextlib2 (🥉24 · ⭐ 31) - contextlib2 is a backport of the standard library's contextlib..
❗️psfrag
cryptography (🥇34 · ⭐ 4.1K) - cryptography is a package designed to expose cryptographic.. BSD-3
pycryptodomex (🥇34 · ⭐ 1.6K) - A self-contained cryptographic library for Python. BSD-3
asn1crypto (🥈31 · ⭐ 230) - Python ASN.1 library with a focus on performance and a pythonic API. MIT
docker-compose (🥈36 · ⭐ 23K) - Define and run multi-container applications with Docker. Apache-2
ansible (🥈35 · ⭐ 48K) - Ansible is a radically simple IT automation platform that makes your.. ❗️GPL-3.0
paramiko (🥈34 · ⭐ 7K) - The leading native Python SSHv2 protocol library. ❗️LGPL-2.1
kubernetes (🥉33 · ⭐ 3.7K) - Official Python client library for kubernetes. Apache-2
pyinfra (🥉21 · ⭐ 1.2K) - pyinfra automates infrastructure super fast at massive scale. It can be.. MIT
Show 4 hidden projects...
- storm (🥉24 · ⭐ 3.8K · 💀) - Manage your SSH like a boss.
MIT
- fabtools (🥉24 · ⭐ 1.2K · 💀) - Tools for writing awesome Fabric files.
BSD-2
- parallel-ssh (🥉22 · ⭐ 880) - Asynchronous parallel SSH client library.
❗️LGPL-2.1
- wssh (🥉14 · ⭐ 1.3K · 💀) - SSH to WebSockets Bridge.
MIT
pexpect (🥇34 · ⭐ 2K) - A Python module for controlling interactive programs in a pseudo-terminal. ISC
supervisor (🥈33 · ⭐ 6.8K) - Supervisor process control system for UNIX. ❗️Repoze Public License
ptyprocess (🥉28 · ⭐ 140) - Run a subprocess in a pseudo terminal. ISC
Show 1 hidden projects...
python-decouple (🥇30 · ⭐ 1.7K) - Strict separation of config from code. MIT
omegaconf (🥉26 · ⭐ 700) - Flexible Python configuration system. The last one you will ever need. BSD-3
python-prompt-toolkit (🥇35 · ⭐ 7.1K) - Library for building powerful interactive command.. BSD-3
rich (🥈33 · ⭐ 26K) - Rich is a Python library for rich text and beautiful formatting in the terminal. MIT
python-fire (🥈33 · ⭐ 19K) - Python Fire is a library for automatically generating command.. Apache-2
argcomplete (🥉30 · ⭐ 970) - Python and tab completion, better together. Apache-2
wcwidth (🥉30 · ⭐ 200 · 💤) - Python library that measures the width of unicode strings rendered to.. MIT
ConfigArgParse (🥉29 · ⭐ 490) - A drop-in replacement for argparse that allows options to also be.. MIT
asciimatics (🥉27 · ⭐ 2.7K) - A cross platform package to do curses-like operations, plus.. Apache-2
blessings (🥉27 · ⭐ 1.2K · 💤) - A thin, practical wrapper around terminal capabilities in Python. MIT
bashplotlib (🥉22 · ⭐ 1.6K) - plotting in the terminal. MIT
Show 2 hidden projects...
🔗 best-of-python-dev ( ⭐ 280 · 🐣) - A ranked list of awesome python developer tools and libraries...
cachetools (🥇30 · ⭐ 970) - Extensible memoizing collections and decorators. MIT
🔗 best-of-web-python - Web UI ( ⭐ 1.2K · 🐣) - Collection of libraries to implement web-based UIs.
kivy (🥇35 · ⭐ 13K) - Open source UI framework written in Python, running on Windows, Linux, macOS,.. MIT
PySimpleGUI (🥈28 · ⭐ 6.3K) - PySimpleGUI is a Python package that enables Python.. ❗️LGPL-3.0
Gooey (🥈27 · ⭐ 11K) - Turn (almost) any Python command line program into a full GUI application.. MIT
Eel (🥈27 · ⭐ 4.4K · 💤) - A little Python library for making simple Electron-like HTML/JS GUI apps. MIT
DearPyGui (🥉26 · ⭐ 5.2K) - Dear PyGui: A fast and powerful Graphical User Interface Toolkit for.. MIT
🔗 caer ( ⭐ 5.2K · 🐣) - Collection of computer vision and image processing libraries.
🔗 best-of-ml-python ( ⭐ 5.2K · 🐣) - A ranked list of awesome machine learning Python libraries. Updated..
chardet (🥇35 · ⭐ 1.5K) - Python character encoding detector. ❗️LGPL-2.1
python-slugify (🥈30 · ⭐ 1K) - Returns unicode slugs. MIT
price-parser (🥉20 · ⭐ 190) - Extract price amount and currency symbol from a raw text string. BSD-3
Show 1 hidden projects...
- awesome-slugify (🥉22 · ⭐ 460 · 💀) - Python flexible slugify function.
❗️GPL-3.0
🔗 best-of-web-python ( ⭐ 1.2K · 🐣) - A ranked list of awesome python libraries for web development...
Libraries for connecting to, operating, and querying databases.
SQLAlchemy (🥇38 · ⭐ 3.8K) - The Database Toolkit for Python. MIT
google-cloud-storage (🥇36 · ⭐ 3.6K) - Google Cloud Client Library for Python. Apache-2
MongoEngine (🥇35 · ⭐ 3.5K) - A Python Object-Document-Mapper for working with MongoDB. MIT
elasticsearch (🥇35 · ⭐ 3.2K) - Official Python low-level client for Elasticsearch. Apache-2
azure-storage-blob (🥇35 · ⭐ 2K) - This repository is for active development of the Azure SDK.. MIT
kafka-python (🥈34 · ⭐ 4.4K) - Python client for Apache Kafka. Apache-2
python-bigquery (🥈34 · ⭐ 3.5K) - Google BigQuery API client library. Apache-2
Cassandra Driver (🥈33 · ⭐ 1.2K) - DataStax Python Driver for Apache Cassandra. Apache-2
google-cloud-bigtable (🥈32 · ⭐ 3.5K) - Google Cloud Bigtable API client library. Apache-2
s3transfer (🥈32 · ⭐ 120) - Amazon S3 Transfer Manager for Python. Apache-2
Prometheus Client (🥈31 · ⭐ 2.2K) - Prometheus instrumentation library for Python.. Apache-2
mysqlclient (🥈31 · ⭐ 1.9K) - MySQL database connector for Python (with Python 3 support). ❗️GPL-2.0
SQLAlchemy-Utils (🥈31 · ⭐ 780) - Various utility functions and datatypes for SQLAlchemy. BSD-3
Elasticsearch DSL (🥈30 · ⭐ 3.2K) - High level Python client for Elasticsearch. Apache-2
confluent-kafka-python (🥈30 · ⭐ 2.3K) - Confluent's Kafka Python Client. Apache-2
dataset (🥉29 · ⭐ 4K) - Easy-to-use data handling for SQL data stores with support for implicit.. MIT
PyPika (🥉29 · ⭐ 1.2K) - PyPika is a python SQL query builder that exposes the full richness.. Apache-2
py2neo (🥉29 · ⭐ 990) - Py2neo is a comprehensive toolkit for working with Neo4j from within.. Apache-2
redis-py-cluster (🥉29 · ⭐ 950) - Python cluster client for the official redis cluster. Redis.. MIT
pandas-gbq (🥉29 · ⭐ 250) - Pandas Google BigQuery. BSD-3
libcloud (🥉28 · ⭐ 1.8K) - Apache Libcloud is a Python library which hides differences between.. Apache-2
Ibis (🥉28 · ⭐ 1.5K) - A pandas-like deferred expression system, with first-class SQL support. Apache-2
cx-Oracle (🥉24 · ⭐ 740 · 📉) - Python interface to Oracle Database conforming to the Python DB.. BSD-3
neo4j-driver (🥉24 · ⭐ 620) - Neo4j Bolt driver for Python. Apache-2
AWS Data Wrangler (🥉23 · ⭐ 1.8K) - Pandas on AWS - Easy integration with Athena, Glue,.. Apache-2
pandas
ODMantic (🥉19 · ⭐ 290) - Async ODM (Object Document Mapper) for MongoDB based on python type hints. ISC
Show 5 hidden projects...
- psycopg2 (🥇35 · ⭐ 2.2K) - PostgreSQL database adapter for the Python..
❗️BSD-3-Clause-Attribution
- mongo-connector (🥉24 · ⭐ 1.8K · 💀) - MongoDB data stream pipeline tools by YouGov (adopted..
Apache-2
- db.py (🥉20 · ⭐ 1.2K · 💀) - db.py is an easier way to interact with your databases.
BSD-2
- lazydata (🥉17 · ⭐ 630 · 💀) - Lazydata: Scalable data dependencies for Python projects.
Apache-2
- SuperSQLite (🥉15 · ⭐ 670 · 💀) - A supercharged SQLite library for Python.
MIT
XlsxWriter (🥉31 · ⭐ 2.5K) - A Python module for creating Excel XLSX files. BSD-3
typing_inspect (🥉23 · ⭐ 200) - Runtime inspection utilities for Python typing module. MIT
Show 2 hidden projects...
- entrypoints (🥈24 · ⭐ 65 · 💀) - Discover and load entry points from installed packages.
MIT
- importlib-resources (🥉18 · ⭐ 7) - Read resources from Python packages.
Apache-2
more-itertools (🥇35 · ⭐ 1.9K) - More routines for operating on iterables, beyond itertools. MIT
ubelt (🥉23 · ⭐ 570) - A Python utility belt containing simple tools, a stdlib like feel, and.. Apache-2
Show 4 hidden projects...
- retrying (🥉26 · ⭐ 1.7K · 💀) - Retrying is an Apache 2.0 licensed general-purpose retrying..
Apache-2
- ratelimit (🥉25 · ⭐ 380 · 💀) - API Rate Limit Decorator.
MIT
- pampy (🥉21 · ⭐ 3.4K · 💀) - Pampy: The Pattern Matching for Python you always dreamed of.
MIT
- CommonRegex (🥉21 · ⭐ 1.4K · 💀) - A collection of common regular expressions bundled with an easy..
MIT
micropython (🥇25 · ⭐ 13K) - MicroPython - a lean and efficient Python implementation for.. MIT
-
GitHub (👨💻 410 · 🔀 4.3K · 📥 18K · 📋 3.9K - 32% open · ⏱️ 20.05.2021):
git clone https://github.com/micropython/micropython
pyston (🥈22 · ⭐ 1.2K · 🐣) - A faster and highly-compatible implementation of the Python.. Apache-2
-
GitHub (👨💻 1K · 🔀 30 · 📥 1.2K · 📋 17 - 58% open · ⏱️ 17.05.2021):
git clone https://github.com/pyston/pyston
Show 3 hidden projects...
cookiecutter (🥇35 · ⭐ 15K · 📈) - A command-line utility that creates projects from.. BSD-3
py4j (🥉30 · ⭐ 840) - Py4J enables Python programs to dynamically access arbitrary Java objects. BSD-3
Send2Trash (🥉29 · ⭐ 170) - Python library to natively send files to Trash (or Recycle bin) on.. BSD-3
pyscreenshot (🥉26 · ⭐ 400) - Python screenshot library, replacement for the Pillow ImageGrab.. BSD-2
pluginbase (🥉25 · ⭐ 950) - A simple but flexible plugin system for Python. BSD-3
python-mss (🥉24 · ⭐ 600 · 💤) - An ultra fast cross-platform multiple screenshots module in pure.. MIT
Show 3 hidden projects...
- Best-of lists: Discover other best-of lists with awesome open-source projects on all kinds of topics.
- best-of-ml-python: A ranked list of awesome machine learning Python libraries.
- best-of-web-python: A ranked list of awesome Python libraries for web development.
- best-of-python-dev: A ranked list of awesome Python developer tools and libraries.
- awesome-python: A curated list of awesome Python frameworks, libraries, software and resources.
Contributions are encouraged and always welcome! If you like to add or update projects, choose one of the following ways:
- Open an issue by selecting one of the provided categories from the issue page and fill in the requested information.
- Modify the projects.yaml with your additions or changes, and submit a pull request. This can also be done directly via the Github UI.
If you like to contribute to or share suggestions regarding the project metadata collection or markdown generation, please refer to the best-of-generator repository. If you like to create your own best-of list, we recommend to follow this guide.
For more information on how to add or update projects, please read the contribution guidelines. By participating in this project, you agree to abide by its Code of Conduct.