Libraries

Recommended libraries and frameworks for various languages.

Bash

Go

  • cobra: A library for creating powerful command-line applications in Go. GitHub - spf13/cobra.
  • viper: A complete configuration solution for Go applications, supporting various configuration formats. GitHub - spf13/viper.

Java

  • assertj: A fluent assertion library. Website.
  • awaitility: A DSL for synchronizing asynchronous operations. GitHub - awaitility/awaitility.
  • gatling: A highly capable load testing tool. Website.
  • gson:
  • guice: A lightweight dependency injection framework. GitHub - google/guice.
  • jackson: A multi-purpose Java library for processing JSON, including parsing, generating, transforming, and querying. GitHub - FasterXML/jackson.
  • javapoet: A Java API for generating .java source files. GitHub - square/javapoet.
  • jsoup: A Java library for HTML parsing, manipulation, and scraping, with an emphasis on safety and ease-of-use. GitHub - jhy/jsoup.
  • junit:
  • lombok:
  • mission control (jmc): production time profiling and diagnostics tools suite. GitHub - openjdk/jmc.
  • mockito: A mocking framework for unit tests in Java. Website.
  • okhttp: An HTTP client for Java and Kotlin. GitHub - square/okhttp.
  • pitest: A mutation testing system for the JVM. GitHub - hcoles/pitest.
  • SLF4J: The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks, such as java.util.logging, logback and log4j.
  • testcontainers: throwaway, lightweight instances of databases, message brokers, web browsers, or just about anything that can run in a Docker container.testcontainers.com.

Kotlin

Check out kotlin.link for more Kotlin libraries curated by the Kotlin community.

Python

  • langchain: A library for building applications with large language models through composability. GitHub - langchain-ai/langchain.
  • openai:
  • pydantic:
  • sqlalchemy:
  • tiktoken:

Rust

Note that Rust distinguishes library crates from binary crates. Library crates are intended to be used as dependencies in other programs, while binary crates are intended to be run as standalone programs. Read more about packages and crates.

blessed.rs has a great list of Rust crates too.

For searching crates, Lib.rs gets the job done.