You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository is dedicated to organizing and documenting useful Python programming tools and libraries across various categories, as well as other noteworthy resources. It is still a work in progress.
Initially, this list started as a personal collection—a way for me to keep track of references and tools that I found invaluable in my coding journey. As the list grew and evolved, I decided to make it public with help from ChatGPT in hopes that it could serve as a resource for other developers.
Whether you're a seasoned developer or just starting out, I hope you find this repository useful.
As I continue to discover and learn about new tools and libraries, I plan to extend this list, making it an ever-growing resource for the programming community.
A Python web framework and asynchronous networking library, originally developed at FriendFeed. It is designed to handle asynchrony, enabling the development of real-time web applications.
A modern, fast (high-performance) web framework for building APIs with Python 3.7+ based on standard Python type hints, offering automatic Swagger UI documentation.
A fast, simple, and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library.
A minimalist Python web framework, making it easy to build web applications much like you would build any other object-oriented Python program. This results in smaller source code developed in less time.
A free software machine learning library for the Python programming language. It features various classification, regression, and clustering algorithms including support vector machines, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy.
An open-source software library that provides a Python interface for artificial neural networks. Keras acts as an interface for the TensorFlow library.
A scalable, portable and distributed gradient boosting library, designed to efficiently perform the gradient boosting decision tree algorithm, popular for structured or tabular data.
A gradient boosting framework that uses tree-based learning algorithms. It is designed for distributed and efficient training, particularly for high-dimensional data.
An open-source gradient boosting on decision trees library with categorical feature support out of the box, for machine learning. It yields state-of-the-art results without extensive data training typically required by other machine learning methods.
An open-source library for advanced Natural Language Processing (NLP) in Python. It's designed specifically for production use and helps you build applications that process and "understand" large volumes of text.
A leading platform for building Python programs to work with human language data. It provides easy-to-use interfaces to over 50 corpora and lexical resources such as WordNet, along with a suite of text processing libraries.
A library for natural language processing (NLP) that provides thousands of pre-trained models to perform tasks on texts such as classification, information extraction, question answering, and more, implemented in TensorFlow and PyTorch.
A plotting library for the Python programming language and its numerical mathematics extension NumPy. It provides an object-oriented API for embedding plots into applications.
An open-source Python library used for scientific computing and technical computing. It builds on NumPy and provides a large number of higher-level functions that operate on numpy arrays and are useful for different types of scientific and engineering applications.
A Python data visualization library based on matplotlib. It provides a high-level interface for drawing attractive and informative statistical graphics.
An open-source graphing library that makes interactive, publication-quality graphs online. Offers over 40 unique chart types covering a wide range of statistical, financial, geographic, scientific, and 3-dimensional use-cases.
A Python interactive visualization library that targets modern web browsers for presentation. Its goal is to provide elegant, concise construction of versatile graphics, and to extend this capability with high-performance interactivity over very large or streaming datasets.
An open-source library for parallel computing written in Python. Designed to scale from a single computer to a cluster, Dask provides advanced parallelism for analytics, enabling performance at scale for the tools you love.
A robust library offering open-source computer vision and machine learning software. Designed to provide a common infrastructure for computer vision applications, OpenCV accelerates the use of machine perception in the commercial realm.
Part of the SciPy ecosystem, this library presents a rich collection of image processing algorithms accessible in Python. It's aimed at researchers, educators, and industry professionals alike.
Offering a straightforward framework for building computer vision applications, SimpleCV simplifies image acquisition, processing, and analysis through a consistent Python interface.
This library serves as a comprehensive toolkit for computer vision and image processing in Python, featuring numerous algorithms for segmentation, feature extraction, and more.
A powerful, user-friendly HTTP client for Python. Much of the Python ecosystem uses urllib3 and makes HTTP requests. It brings many critical features that are missing from the Python standard libraries.
A high performance, open-source universal RPC framework that uses HTTP/2 as transport protocol, enabling client and server applications to communicate transparently and build connected systems.
A powerful Python program that enables the user to send, sniff, dissect and forge network packets. This capability allows for a wide range of networking tasks.
A modern and themeable GUI library for Tkinter. ttkbootstrap extends Tkinter with a collection of widgets styled using Bootstrap themes for beautiful and responsive applications.
An extension to Tkinter that provides custom widgets with advanced styling capabilities and a more modern look, improving the visual appearance and user experience of applications.
A cross-platform GUI toolkit for the Python language, allowing Python programmers to create programs with a robust, highly functional graphical user interface, simply and easily.
A Python ORM that provides a generator-based interface to write queries. It translates Python functions into SQL syntax and is designed for ease of use.
A lightweight database migration tool for use with SQLAlchemy. It allows for version control for database schemas, enabling fine-grained and database-independent migration scripting.
While primarily a data analysis library, Pandas offers robust IO tools for reading and writing data in various formats, including CSV, Excel, JSON, HTML, and SQL databases.
A YAML parser and emitter for Python, allowing for the serialization and deserialization of complex data structures to and from YAML, a human-friendly data serialization standard.
An easy-to-use, distributed user load testing tool. It's intended for load testing web sites (or other systems) and figuring out how many concurrent users a system can handle.
A generic virtualenv management and test command-line tool you can use for checking your package installs correctly with different Python versions and interpreters.
A high-level interface for asynchronously executing callables. It provides a framework for asynchronously executing functions using threads or processes.
A package designed to expose cryptographic primitives and recipes to Python developers, offering both high-level recipes and low-level interfaces to common cryptographic algorithms.
A module that implements a common interface to many secure hash and message digest algorithms, including SHA1, SHA224, SHA256, SHA384, SHA512, and MD5.
A self-contained Python package of low-level cryptographic primitives. It is a fork of PyCrypto that has been enhanced and is actively maintained, designed to replace PyCrypto.
A high-level cryptographic library that makes it easy to encrypt, decrypt, sign, and verify signatures without needing to manage nonces, keys, or other cryptographic details.
A robust, full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. The pyOpenSSL library is a thin wrapper around (a subset of) the OpenSSL library.
The argparse module makes it easy to write user-friendly command-line interfaces. The program defines what arguments it requires, and argparse will figure out how to parse those out of sys.argv.
A library for automatically generating command line interfaces (CLIs) with a single line of code. It turns any Python module, class, or object into a CLI.
Plumbum: Shell Combinators and More. It offers local and remote command execution, including command piping, file and path manipulation, and more, aiming for a more Pythonic interface.
Although not exclusively a CLI library, Rich can be used to enhance the visual appeal of command line applications with rich text and beautiful formatting.
An HTML parsing library designed to simplify the process of making requests and parsing HTML documents. It integrates functionality from requests and pyquery/pyppeteer for a comprehensive scraping solution.
Although primarily a tool for testing web applications, Selenium can be used for scraping dynamic content that other tools can't handle as it allows for rendering JavaScript.
A Python library for automating interaction with websites. It combines the Requests library and BeautifulSoup to simulate a browser without a graphical interface.
A library for controlling headless Chrome or Chromium over the DevTools Protocol. Pyppeteer is the Python version, perfect for tasks requiring JavaScript rendering.
An open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries, and streams.
A Python wrapper around the libmemcached interface, which is a client library for Memcached written in C. It's a fast and efficient way to interface with Memcached from Python.
A minimalistic C client library for the Redis database. hiredis-py is a Python wrapper for the hiredis C library. It provides a way to communicate with Redis directly from Python, using the C client for speed.
The Python Imaging Library adds image processing capabilities to your Python interpreter. This library provides extensive file format support, an efficient internal representation, and fairly powerful image processing capabilities.
A module that implements classes to read and write tabular data in CSV format. It allows programmers to write and read data in a format preferred by Excel, without knowing the precise details of the CSV format.
Offers powerful data manipulation and analysis via its DataFrame object. It can read and write data in various formats, including CSV, Excel, JSON, HTML, and SQL databases.
A tool to create isolated Python environments. It can create environments with their own installation directories, that can have different Python versions and packages installed.
Aims to bring the best of all packaging worlds to the Python world. It automatically creates and manages a virtualenv for your projects and adds/removes packages from your Pipfile as you install/uninstall packages.
A tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.
An open-source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs, and updates packages and their dependencies.
A set of Python modules designed for writing video games. It includes computer graphics and sound libraries designed to be used with the Python programming language.
A modern Python framework for crafting games with compelling graphics and sound. Open source and easy to use, it's geared towards teaching programming concepts through game development.
An open-source, completely free-to-use engine for realtime 3D games, visualizations, simulations, experiments — you name it! Its rich feature set readily tailors to your specific workflow and development needs.
An open source Python library for developing multitouch applications. It's cross-platform (Linux/OS X/Windows/Android/iOS) and released under the MIT license. Though not exclusively for games, it's used widely in game development due to its extensive support for gestures and touch.
A visual novel engine that helps you use words, images, and sounds to tell interactive stories that run on computers and mobile devices. It's great for both beginning and professional creators, and it supports easy creation of visual novels and life simulation games.
Provides user session management for Flask. It handles the common tasks of logging in, logging out, and remembering your users' sessions over extended periods of time.
A powerful and flexible toolkit for building Web APIs. It's a lightweight extension to Django that works well with existing apps and comes bundled with a set of serialization that can be customized and extended.
Adds SQLAlchemy support to Flask. It simplifies the use of SQLAlchemy with Flask by providing useful defaults and extra helpers that make it easier to accomplish common tasks.
While not a Python library, React Router is a powerful routing library for React that allows the creation of single page applications with dynamic page changes without the need to reload. Useful for Django or Flask backends serving React frontends.
Similar to React Router but for Vue.js. It enables the development of powerful single-page web applications. This can be useful in projects that use Python backends.
An open-source system monitoring and alerting toolkit originally built at SoundCloud, now part of the Cloud Native Computing Foundation. It's focused on reliability and scalability, handling multi-dimensional data collected over time.
A C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine. SQLite is the most used database engine in the world.
A query language for APIs and a runtime for executing those queries by using a type system you define for your data. It enables declarative data fetching, allowing clients to specify exactly what data they need.
A distributed event streaming platform capable of handling trillions of events a day. Initially conceived as a messaging queue, Kafka is based on an abstraction of a distributed commit log.
An open-source message-broker software that originally implemented the Advanced Message Queuing Protocol (AMQP) and has since been extended with a plug-in architecture to support Streaming Text Oriented Messaging Protocol (STOMP), MQTT, and other protocols.
A cloud-native, distributed messaging and streaming platform originally created at Yahoo! It's designed to provide a highly scalable, durable, and secure event streaming platform.
A set of tools for designing, building, and documenting RESTful APIs. It offers the Swagger Editor for designing API specifications, the Swagger UI for generating interactive API documentation, and the Swagger Codegen for generating server stubs and client libraries from an OpenAPI Specification.
A tool that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of multiple reStructuredText sources), originally created for the Python documentation.
A fast and simple static site generator that's geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file.
A documentation hosting platform that automates the process of building and deploying your Sphinx or MkDocs documentation after each commit or daily. It integrates well with Git, GitHub, Bitbucket, and similar platforms.
Postman allows you to generate and host beautiful, machine-readable documentation for your APIs. It offers dynamic examples and mock servers, making API testing and sharing easier.
A project for building, deploying, and maintaining open source project websites easily. It supports Markdown, documentation versioning, and features built specifically for documentation websites.
An open-source tool that can serve as an alternative to Swagger UI. It's React-based and offers a more customizable and visually appealing way to generate interactive API documentation from OpenAPI (Swagger) Definitions.
Designed to make scripting easy, flexible, and powerful, it provides the same capabilities as the portal, making it an essential tool for managing Azure resources.
A family of containerization software developed by Red Hat. It's an open source container application platform based on the Kubernetes container orchestrator for enterprise application development and deployment.
An open platform for developing, shipping, and running applications, Docker enables you to separate your applications from your infrastructure so you can deliver software quickly.
An open-source automation tool, or platform, used for IT tasks such as configuration management, application deployment, intra-service orchestration, and provisioning.
An open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services. Terraform codifies cloud APIs into declarative configuration files.
A tool built into GitLab for software development through the continuous methodologies: Continuous Integration (CI), Continuous Delivery (CD), and Continuous Deployment (CD).
A Python wrapper for the Jenkins REST API which allows you to access Jenkins servers. This can be used to automate Jenkins server management, job configuration, and job execution.
Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.
The package manager for Kubernetes. Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this repository better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
Steps to contribute:
Fork the Project
Create your Feature Branch (git checkout -b feature/amazing-feature)
Commit your Changes (git commit -m 'Add some amazing-feature')
Push to the Branch (git push origin feature/amazing-feature)