Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-tools
My awesomelist of tools I use and want to share
https://github.com/redjax/awesome-tools
Last synced: about 17 hours ago
JSON representation
-
Programming
-
Python
- DuckDB - An in-process database management system. Can load extremely large datasets to an in-memory database. Useful for loading a subset of data from a large database for local processing/analysis, instead of querying the database each time, you query it once, load the data into DuckDB, and then operate on your "local" copy. Can handle writing modifications back to the original database.
- requests
- pip - lang.org/cargo/) package manager.
- pip - lang.org/cargo/) package manager.
- uv - A ridiculously fast Python project manager written in Rust. Handles `.venv` creation, package management (with an incredibly fast resolver & a superpowered cache), and project scripts.
- pixi - An exciting new Python project manager that uses Conda channels for packages, and more recently pypi packages. Handles interpreter installation (Python, Rust, and R), project initialization & management, package management, project scripts, & more.
- uv - A ridiculously fast Python project manager written in Rust. Handles `.venv` creation, package management (with an incredibly fast resolver & a superpowered cache), and project scripts.
- Ruff - A fast, versatile code linting & checking tool. Combines functionality of tools like `Flake8`, `black`, `isort`, & more. Uses a `[tool.ruff]` section in your `pyproject.toml` or a `ruff.toml` to define rules.
- Nox - A cross-platform CLI tool that automates testing & more. An alternative to the [tox]() library, written entirely in Python. This allows for much more flexibility.
- pixi - An exciting new Python project manager that uses Conda channels for packages, and more recently pypi packages. Handles interpreter installation (Python, Rust, and R), project initialization & management, package management, project scripts, & more.
- Conda - The package manager for data scientists. Good for installing large ML libraries like `pytorch`.
- Mamba - A fully compatible replacement for Conda that is much, much faster at resolving dependencies.
- Micromamba - A small, statically linked binary that supports a subset of all `mamba` or `conda` commands, and is much, much faster than either.
- Azure SDK for Python - core` library, but there are links to documentation for individual modules in the core package below.
- Azure Core - Provides an SDK for interacting with Microsoft Azure.
- Azure Blob Storage - Library for interacting with Azure Blob Storage.
- pytest-xdist - Extends the [pytest](https://docs.pytest.org/en/stable/) testing frametwork to allow for running multiple tests simultaneously.
- Conda - The package manager for data scientists. Good for installing large ML libraries like `pytorch`.
- Mamba - A fully compatible replacement for Conda that is much, much faster at resolving dependencies.
- Micromamba - A small, statically linked binary that supports a subset of all `mamba` or `conda` commands, and is much, much faster than either.
- Hishel - A caching library for HTTPX. Offers a highly configurable API for adding in-memory, file-based, and database-backed caches for HTTP responses made with the HTTPX library.
- Azure SDK for Python - core` library, but there are links to documentation for individual modules in the core package below.
- Azure Core - Provides an SDK for interacting with Microsoft Azure.
- Azure Blob Storage - Library for interacting with Azure Blob Storage.
- SQLAlchemy - One of (if not *the*) most flexible, powerful ORMs for Python. There is a learning curve with SQLAlchemy, but the new [ORM syntax](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) in SQLAlchemy v2.0 makes the code more "Pythonic."
- Ruff - A fast, versatile code linting & checking tool. Combines functionality of tools like `Flake8`, `black`, `isort`, & more. Uses a `[tool.ruff]` section in your `pyproject.toml` or a `ruff.toml` to define rules.
- Nox - A cross-platform CLI tool that automates testing & more. An alternative to the [tox]() library, written entirely in Python. This allows for much more flexibility.
- pytest-xdist - Extends the [pytest](https://docs.pytest.org/en/stable/) testing frametwork to allow for running multiple tests simultaneously.
- SQLAlchemy - One of (if not *the*) most flexible, powerful ORMs for Python. There is a learning curve with SQLAlchemy, but the new [ORM syntax](https://docs.sqlalchemy.org/en/20/orm/quickstart.html) in SQLAlchemy v2.0 makes the code more "Pythonic."
- requests
- DuckDB - An in-process database management system. Can load extremely large datasets to an in-memory database. Useful for loading a subset of data from a large database for local processing/analysis, instead of querying the database each time, you query it once, load the data into DuckDB, and then operate on your "local" copy. Can handle writing modifications back to the original database.
- Hishel - A caching library for HTTPX. Offers a highly configurable API for adding in-memory, file-based, and database-backed caches for HTTP responses made with the HTTPX library.
-
Git
- Lazygit - A cross-platform/shell terminal user interface (TUI) for common (and some uncommon) git operations. Helps avoid common traps & footguns & speeds up common operations like adding/committing code, merging, and handling/avoiding merge errors. A gentler introduction to git for new learners, & a shortcut to operations advanced users know by heart.
- Lazygit - A cross-platform/shell terminal user interface (TUI) for common (and some uncommon) git operations. Helps avoid common traps & footguns & speeds up common operations like adding/committing code, merging, and handling/avoiding merge errors. A gentler introduction to git for new learners, & a shortcut to operations advanced users know by heart.
-
-
Windows
- Windows Terminal - A more modern terminal experience for Windows. Can switch your active session between PowerShell, CMD, and any other prompts installed like the Azure CLI or Git bash CLI.
- Winget CLI - Finally...Windows has caught up to the early '90's and has an official package manager.
- PowerToys - Official package from Microsoft to add extra "power user" functionality, like caffeinate (keep your computer awake & unlocked for a configurable length of time), extract text from screenshots, color picker, monitor zones, & more.
- Windows Sandbox - Official, built-in sandbox utility (must be enabled). Explode suspicious binaries in an isolated environment, or isolate sensitive software from the rest of the OS. Configurable using [XML](https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file).
- Windows Terminal - A more modern terminal experience for Windows. Can switch your active session between PowerShell, CMD, and any other prompts installed like the Azure CLI or Git bash CLI.
- Winget CLI - Finally...Windows has caught up to the early '90's and has an official package manager.
- Windows Sandbox - Official, built-in sandbox utility (must be enabled). Explode suspicious binaries in an isolated environment, or isolate sensitive software from the rest of the OS. Configurable using [XML](https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file).
- WizTree - "The fastest disk space analyzer." Like [WinDirStat](https://windirstat.net/), this tool scans a target disk (i.e. `C:` or `D:`) and presents you with a size-ordered list of files & directories, helping you to quickly spot large files & folders taking up space on your hard drive. The tool makes cleaning up your disk to free up storage space much easier than manually clicking through the file explorer. The main advantage of WizTree over WinDirStat is speed, WizTree is *many* times faster to scan large amounts of data.
- PeaZip - While Windows is getting better at built-in archive support, there are still a number of formats (like `.tar.gz`) that Windows cannot handle natively. PeaZip is my go-to archiving utility, it supports a [very large range of archive formtas](https://peazip.github.io/peazip-free-archiver.html), it's free and open-source, and it integrates well with the Windows context menu (right click).
- WizTree - "The fastest disk space analyzer." Like [WinDirStat](https://windirstat.net/), this tool scans a target disk (i.e. `C:` or `D:`) and presents you with a size-ordered list of files & directories, helping you to quickly spot large files & folders taking up space on your hard drive. The tool makes cleaning up your disk to free up storage space much easier than manually clicking through the file explorer. The main advantage of WizTree over WinDirStat is speed, WizTree is *many* times faster to scan large amounts of data.
- PeaZip - While Windows is getting better at built-in archive support, there are still a number of formats (like `.tar.gz`) that Windows cannot handle natively. PeaZip is my go-to archiving utility, it supports a [very large range of archive formtas](https://peazip.github.io/peazip-free-archiver.html), it's free and open-source, and it integrates well with the Windows context menu (right click).
- Devolutions Remote Desktop Manager - Free (with an optional paid edition that has features a team might use) RDP connection manager for Windows. You can organize your sessions into folders, and while it is geared at RDP, this tool supports a ton of connection types (`ssh`, `(s)ftp`), TeamViewer, Apple Remote Desktop, Azure/Amazon S3 storage, and many other types of connections. Also has an option of storing connections in an encrypted SQLite database, making importing/exporting sessions easy!
- Remote Desktop Connection Manager (RDCMan) - An official Microsoft tools for RDP sessions. Save your connections to a list, open multiple RDP connections from the same interface, script sessions, etc.
- Ventoy - A utility for creating bootable USB drives. Use the installer to create a Ventoy media, then you can simply drop `.iso` files on the drive. When you boot from the disk, Ventoy will automatically find all bootable ISOs and present them in a menu for you to boot from. For UEFI/secure-boot enabled devices, Ventoy provides a certificate you can install from the USB (created at the same time you install Ventoy on the drive, automatically) to enable booting from Ventoy without disabling/fiddling with secure boot.
- Devolutions Remote Desktop Manager - Free (with an optional paid edition that has features a team might use) RDP connection manager for Windows. You can organize your sessions into folders, and while it is geared at RDP, this tool supports a ton of connection types (`ssh`, `(s)ftp`), TeamViewer, Apple Remote Desktop, Azure/Amazon S3 storage, and many other types of connections. Also has an option of storing connections in an encrypted SQLite database, making importing/exporting sessions easy!
- Remote Desktop Connection Manager (RDCMan) - An official Microsoft tools for RDP sessions. Save your connections to a list, open multiple RDP connections from the same interface, script sessions, etc.
- Ventoy - A utility for creating bootable USB drives. Use the installer to create a Ventoy media, then you can simply drop `.iso` files on the drive. When you boot from the disk, Ventoy will automatically find all bootable ISOs and present them in a menu for you to boot from. For UEFI/secure-boot enabled devices, Ventoy provides a certificate you can install from the USB (created at the same time you install Ventoy on the drive, automatically) to enable booting from Ventoy without disabling/fiddling with secure boot.
-
Linux
-
Linux OSes
- Ubuntu - A very popular, established Linux distribution that is beginner and enterprise friendly, is backed by a corporation (ensuring its longevity). The Ubuntu OS is "opinionated," there are a number of defaults, configurations, and packages (like `snapd`) that are defaults in Ubuntu and may not be everyones' preference.
- Linux is just a kernel - great Richard Stallman, you may prefer to refer to Linux operating systems as "distributions." You will also hear them referred to as "flavors."
- Ubuntu - A very popular, established Linux distribution that is beginner and enterprise friendly, is backed by a corporation (ensuring its longevity). The Ubuntu OS is "opinionated," there are a number of defaults, configurations, and packages (like `snapd`) that are defaults in Ubuntu and may not be everyones' preference.
- Linux Mint - Based on Ubuntu. A commonly recommended distribution for Linux newbies coming from Windows, Linux Mint is a stable, friendly distribution that offers a number of conveniences like driver/firmware management. Its main selling point is that "everything just works 'Out of the Box'."
- Proxmox - A hypervisor alternative to VMWare ESXi, Microsoft Hyper-V, etc. Can manage traditional VMs as well as LXC containers.
- Pop_OS! - Based on Ubuntu. A fast, secure OS by System76, Pop_OS! is one of the more exciting Linux distributions. Users who enjoy Ubuntu on the desktop but do not want to deal with Ubuntu's defaults or the `snap` package manager can install Pop_OS! for a machine that is compatible with all Ubuntu packages & guides. Pop_OS! develops its own desktop environment, Cosmic, which feels familiar to the GNOME desktop environment, but is more modern and configurable.
- Rescatux - A Debian-based live distribution for rescuing broken Linux and Windows bootloaders. Its gloriously shitty, dated interface belies one of the most useful boot rescue toolsets I've encountered. This image has saved countless installs for me, ranging from server hardware, laptops, to VMs. No live USB is complete without this image.
- Linux is just a kernel - great Richard Stallman, you may prefer to refer to Linux operating systems as "distributions." You will also hear them referred to as "flavors."
- Linux Mint - Based on Ubuntu. A commonly recommended distribution for Linux newbies coming from Windows, Linux Mint is a stable, friendly distribution that offers a number of conveniences like driver/firmware management. Its main selling point is that "everything just works 'Out of the Box'."
- Proxmox - A hypervisor alternative to VMWare ESXi, Microsoft Hyper-V, etc. Can manage traditional VMs as well as LXC containers.
- Pop_OS! - Based on Ubuntu. A fast, secure OS by System76, Pop_OS! is one of the more exciting Linux distributions. Users who enjoy Ubuntu on the desktop but do not want to deal with Ubuntu's defaults or the `snap` package manager can install Pop_OS! for a machine that is compatible with all Ubuntu packages & guides. Pop_OS! develops its own desktop environment, Cosmic, which feels familiar to the GNOME desktop environment, but is more modern and configurable.
- Rescatux - A Debian-based live distribution for rescuing broken Linux and Windows bootloaders. Its gloriously shitty, dated interface belies one of the most useful boot rescue toolsets I've encountered. This image has saved countless installs for me, ranging from server hardware, laptops, to VMs. No live USB is complete without this image.
- buyout - releases/ibm-closes-landmark-acquisition-red-hat-34-billion-defines-open-hybrid-cloud-future), RedHat is one of the oldest Linux distributions. Its aim is to be a stable, secure by default OS for enterprise users, while keeping a more up-to-date list of packages compared to Debian.
- RedHat Enterprise Linux - The base image for a number of downstream `.rpm` distributions. One of, if not *the*, most profitable open-source company in the world, RedHat is aimed at enterprise customers, but provides downstream releases for the community with Fedora.
- Fedora - Officially maintained by the RedHat enterprise, Fedora is compatible with the `.rpm` packaging system, and is meant as a "bleeding edge" testbed for RedHat Enterprise Linux. Fedora gets package and OS updates before RedHat, and the community tests and refines these releases by using Fedora as their OS, improving each release of RedHat.
- Alma Linux - With the [death of CentOS](https://www.redhat.com/en/blog/centos-linux-going-end-life-what-does-mean-me), a number of distributions have popped up to fill the "binary-compatible with RedHat, enterprise grade, consumer edition" of RedHat Enterprise Linux.
- buyout - releases/ibm-closes-landmark-acquisition-red-hat-34-billion-defines-open-hybrid-cloud-future), RedHat is one of the oldest Linux distributions. Its aim is to be a stable, secure by default OS for enterprise users, while keeping a more up-to-date list of packages compared to Debian.
- RedHat Enterprise Linux - The base image for a number of downstream `.rpm` distributions. One of, if not *the*, most profitable open-source company in the world, RedHat is aimed at enterprise customers, but provides downstream releases for the community with Fedora.
- Fedora - Officially maintained by the RedHat enterprise, Fedora is compatible with the `.rpm` packaging system, and is meant as a "bleeding edge" testbed for RedHat Enterprise Linux. Fedora gets package and OS updates before RedHat, and the community tests and refines these releases by using Fedora as their OS, improving each release of RedHat.
- Alma Linux - With the [death of CentOS](https://www.redhat.com/en/blog/centos-linux-going-end-life-what-does-mean-me), a number of distributions have popped up to fill the "binary-compatible with RedHat, enterprise grade, consumer edition" of RedHat Enterprise Linux.
- Arch Linux - I use Arch, btw. Arch linux is an independent distribution notorious for its incredibly useful & well-maintained [Arch Wiki](https://wiki.archlinux.org/). Arch is a "rolling release" distribution, meaning you do not have to reboot after most system updates. Many experienced Linux users recommend going through the [Arch OS installation](https://wiki.archlinux.org/title/Installation_guide) to gain a better understanding of the internals of a Linux OS. The idea behind Arch Linux is that you get "just enough OS" to boot your machine, with a very minimal OS install that you build up from by installing only the packages you need.
- Alpine Linux - Alpine Linux is a small and secure OS with its own package repositories and package management tool (`apk`). The image is commonly used as the base image for Docker containers.
- NixOS - A "declarative/immutable OS," where the OS is configured using a series of text files to describe a desired running state for your machine. This can include configurations like network interfaces, hostnames, base packages, etc. The idea behind Nix is that you can back your OS state up to version control like Git, and have a reproducible build so each time you install your OS, it matches your configuration 1-to-1. Configurations can be updated over time, and updates to the OS or packages use a "swapping" system so you do not need to reboot your machine to apply updates.
- Arch Linux - I use Arch, btw. Arch linux is an independent distribution notorious for its incredibly useful & well-maintained [Arch Wiki](https://wiki.archlinux.org/). Arch is a "rolling release" distribution, meaning you do not have to reboot after most system updates. Many experienced Linux users recommend going through the [Arch OS installation](https://wiki.archlinux.org/title/Installation_guide) to gain a better understanding of the internals of a Linux OS. The idea behind Arch Linux is that you get "just enough OS" to boot your machine, with a very minimal OS install that you build up from by installing only the packages you need.
- Alpine Linux - Alpine Linux is a small and secure OS with its own package repositories and package management tool (`apk`). The image is commonly used as the base image for Docker containers.
- NixOS - A "declarative/immutable OS," where the OS is configured using a series of text files to describe a desired running state for your machine. This can include configurations like network interfaces, hostnames, base packages, etc. The idea behind Nix is that you can back your OS state up to version control like Git, and have a reproducible build so each time you install your OS, it matches your configuration 1-to-1. Configurations can be updated over time, and updates to the OS or packages use a "swapping" system so you do not need to reboot your machine to apply updates.
-
-
Cross Platform
-
Linux OSes
- VLC - One of the best OSS projects on the Internet. VLC can open nearly any media file you will encounter, and has tools for converting between formats and encodings. The maintainer of VLC has [turned down millions of dollars](https://news.ycombinator.com/item?id=15372048) to implement ads and tracking into VLC, making this software trustworthy and hinting at strong leadership and adherence to the principles of open source software.
- MPV - A versatile, cross-platform media player. Similar in spirit to VLC Media Player, MPV is well received by the community and even preferred over VLC by some.
- FFMPEG - The "swiss army knife" of media file conversion. Although this is a different tool from VLC, it performs a similar function, albeit from the CLI rather than with a GUI. The `ffmpeg` binary is cross-platform and emeddable, you can call it from the CLI or scripts, and the syntax is nice and easy! For example, to convert a `.mp4` to a `.avi`: `$> ffmpeg -i input.mp4 output.avi`
- VLC - One of the best OSS projects on the Internet. VLC can open nearly any media file you will encounter, and has tools for converting between formats and encodings. The maintainer of VLC has [turned down millions of dollars](https://news.ycombinator.com/item?id=15372048) to implement ads and tracking into VLC, making this software trustworthy and hinting at strong leadership and adherence to the principles of open source software.
- MPV - A versatile, cross-platform media player. Similar in spirit to VLC Media Player, MPV is well received by the community and even preferred over VLC by some.
- FFMPEG - The "swiss army knife" of media file conversion. Although this is a different tool from VLC, it performs a similar function, albeit from the CLI rather than with a GUI. The `ffmpeg` binary is cross-platform and emeddable, you can call it from the CLI or scripts, and the syntax is nice and easy! For example, to convert a `.mp4` to a `.avi`: `$> ffmpeg -i input.mp4 output.avi`
-
Categories
Sub Categories