Guava is Google's production-grade core Java library, consumed as a dependency by thousands of projects. It provides high-performance collection types (immutable collections, multimaps, multisets, bimaps, tables), concurrency utilities (ListenableFuture, Futures, RateLimiter, Monitor, Service), a graph model and traversal APIs, caching, hashing, I/O, math, primitives, and string utilities. There are no application entry points, web endpoints, or CLI tools; the repository's "entry points" are the public APIs under com.google.common.*. Architecturally it is a multi-module Maven project with separate JRE and Android flavors, plus GWT/J2CL emulation sources and a dedicated test-support module, guava-testlib. The codebase demonstrates exceptionally high craftsmanship: lock-free concurrency, carefully memory-tuned immutable data structures, custom heap algorithms, and a generic collection-contract testing framework. It is actively maintained with regular releases, GitHub Actions CI, and security scorecard automation. The dual JRE/Android source trees and cross-platform emulation layers require deliberate synchronization, but this complexity is managed rigorously rather than showing signs of abandonment. No data-research or pipeline elements exist; this is a pure library/application dependency, not a data project.
This is the central governance and documentation repository for the Jackson project, the premier Java JSON processing library. It does not contain the core library source code (which lives in separate repos like `jackson-core`, `jackson-databind`, and `jackson-annotations`). Instead, it serves as the project's hub, containing all essential governance documents (CLAs, contributing guidelines, security policy, versioning strategy), a comprehensive API reference manual (`MANUAL.md`), and an exceptionally detailed migration guide from Jackson 2.x to 3.x. The repository is a masterclass in open-source project management and technical documentation, providing a clear, well-structured, and authoritative source of truth for the entire Jackson ecosystem. Its primary value lies not in executable code, but in the high-quality, reusable patterns it establishes for project governance, release engineering, and technical communication.
RxJava 4 is a reactive programming library for the JVM, implementing the Reactive Streams specification via `java.util.concurrent.Flow` (Publisher/Subscriber). It provides six core reactive types: `Flowable` (backpressured), `Observable` (unbounded), `Single` (single value), `Maybe` (optional value), `Completable` (completion signal), and the new `Streamable` (pull-based streaming with `CompletionStage`). The library offers a comprehensive set of operators (map, filter, flatMap, concat, merge, window, buffer, etc.) for composing asynchronous data flows, along with schedulers for threading control (`Schedulers.computation()`, `Schedulers.io()`, `Schedulers.virtual()` for virtual threads). It includes advanced features like operator fusion (`QueueFuseable`), backpressure strategies, and configurable operator parameters via immutable records. The architecture is modular: each operator is a final class extending the base reactive type with an inner observer/subscriber class managing state. External dependencies are minimal (only JDK standard library), and the library is designed for embedding in applications, frameworks, and Android. Key entry points are the static factory methods on `Flowable`, `Observable`, `Single`, `Maybe`, `Completable`, and `Streamable`. Data flows are constructed by chaining operators that transform and combine reactive streams, with lifecycle managed through `Disposable` and `Subscription` contracts.
ojAlgo is a pure Java numerical computing library providing high-performance linear algebra (dense and sparse matrices, decompositions like LU, QR, SVD, Cholesky, eigenvalue), optimization (linear programming via simplex, convex QP via active-set/ADMM, integer programming with branch-and-cut), neural networks, statistical distributions, random processes, time series analysis, clustering, financial portfolio models, and special functions. It has zero external dependencies and is modularized via JPMS. The architecture is a classic library: users create matrix objects or optimization models, invoke solvers or decompositions, and retrieve results. Key entry points include `MatrixStore`, `ExpressionsBasedModel`, `ArtificialNeuralNetwork`, and various decomposition factories. The codebase is well-tested with extensive unit and regression tests, and demonstrates strong engineering practices such as interface-driven design, factory patterns, and careful numerical stability. While primarily a software library, it also contains data analysis and research-oriented components (clustering, financial series, random processes), making it a hybrid but dominantly an application library.
Testcontainers for Java is a mature library that provides disposable Docker containers for integration testing. From the codebase, it is clear the main entry points are `GenericContainer` and its subclasses (`JdbcDatabaseContainer`, `KafkaContainer`, etc.), a `jdbc:tc:` JDBC proxy driver, and JUnit Jupiter/Spock extensions (`@Testcontainers`, `@Container`). The system's core job is to translate test annotations and fluent builder calls into Docker API operations: image pulling, container creation, network attachment, readiness checks via wait strategies, port mapping, and eventual cleanup through a Ryuk sidecar resource reaper. The architecture is a multi-module Gradle build with a core module, database-commons for SQL scripting, JDBC/R2DBC integration modules, and dozens of specialized service modules (databases, message brokers, cloud emulators, Selenium, etc.). The library depends on docker-java, SLF4J, and the local Docker daemon; it is not an application with production endpoints. There is no data/research component — all SQL scripts and data files are test fixtures. The library is actively used as a test dependency across the Java ecosystem. Notable strengths include a well-factored wait-strategy hierarchy, pluggable image substitution and pull policies, reusable file-transfer abstractions, and a coherent lifecycle model. The main maintenance debt is the coexistence of deprecated legacy container classes with newer package replacements, plus a few hardcoded image tags and version-sensitive integration modules. Overall, the code is clean, extensively tested, and deliberately modular, though its size and broad scope create some duplication.
Micrometer is a Java library that provides a unified facade for application metrics, enabling instrumentation of code with counters, timers, gauges, and distribution summaries, and publishing them to various monitoring backends (Prometheus, Datadog, OTLP, Graphite, InfluxDB, etc.). It is not an application itself but a library designed to be embedded in Java applications. The architecture is modular: the core module defines the metrics API and abstractions (MeterRegistry, Meter, Counter, Timer, Gauge, DistributionSummary), while separate implementation modules provide backend-specific registries with their own naming conventions and transport protocols. Additionally, the observation module offers a higher-level API for tracing and context propagation, bridging metrics with observability. Key entry points include the MeterRegistry (for creating and managing meters) and the ObservationRegistry (for observation lifecycle). Data flows involve application code recording measurements via meters, which are aggregated in-memory and periodically pushed to configured backends via HTTP, UDP, or other protocols. The library also includes extensive instrumentation binders for popular frameworks (Jetty, OkHttp, gRPC, Kafka, JVM internals, etc.) that automatically collect metrics from those systems. External dependencies vary by implementation module but include HTTP clients (OkHttp, HttpURLConnection), monitoring system SDKs (AWS SDK for CloudWatch, Google Cloud for Stackdriver), and protocol libraries (OTel protobuf, StatsD). The core module has minimal dependencies, relying only on Java standard library and optional logging frameworks (SLF4J, Log4j, Logback).
The Google Auth Library for Java provides authentication mechanisms for Google Cloud services. It supports multiple credential types including service account, user credentials, external account credentials (AWS, identity pools), API keys, and workload identity federation. The library implements Application Default Credentials (ADC) for automatic credential discovery, handles token acquisition/refresh/verification, and includes specialized credentials for Compute Engine, App Engine, and impersonation scenarios. It also supports mTLS authentication and client-side Credential Access Boundary (CAB) for least-privilege access. Structured as a multi-module Maven project, it is designed to be used by applications requiring Google Cloud authentication.
iban4j is a mature, zero-dependency Java library for generating, validating, and parsing International Bank Account Numbers (IBAN) and Business Identifier Codes (BIC). It implements the full ISO 13616 and ISO 9362 standards, supporting over 90 countries with their specific BBAN structures. The library provides a fluent Builder pattern for IBAN construction, static utility methods in IbanUtil and BicUtil for validation, and an immutable Iban object that exposes country-specific fields like bank code, branch code, and national check digit. A standout feature is the extensible country-specific rules subsystem, which validates national check digits (e.g., French RIB key, Spanish modulo 11, Dutch '11-proef') via a pluggable SPI interface. The code is written in Java 11, follows Google Java Style, and has comprehensive test coverage with parameterized tests and custom Hamcrest matchers. Security-conscious design is evident in CharacterUtil, which strictly validates ASCII-only characters to prevent Unicode homograph attacks. The library is published to Maven Central and supports JPMS module system. It has no runtime dependencies.
Gson is a mature Java library for JSON serialization/deserialization, offering both streaming (JsonReader/JsonWriter) and tree-based (JsonElement hierarchy) APIs. It is centered around a flexible type adapter system (TypeAdapter/TypeAdapterFactory) that enables custom serialization for arbitrary Java objects, including support for Java generics, annotations (@SerializedName, @Expose, @JsonAdapter), and versioning. The core module provides reflection-based adapters for most common types, while extras and proto modules extend support for runtime polymorphism and Protocol Buffers. The library is in maintenance mode (bug fixes only, no major new features), but remains actively maintained with CI builds on multiple JDKs (11 through 25), integration tests for JPMS, GraalVM native image, and code shrinking (ProGuard/R8). Its design emphasizes extensibility and backward compatibility, though it relies heavily on Java reflection and sun.misc.Unsafe, which may pose risks on future JDK versions.
Sudachi is a professional-grade Japanese morphological analyzer implemented as a Java library and CLI tool. It performs tokenization, part-of-speech tagging, and text normalization using a plugin-based architecture with configurable input rewriting, out-of-vocabulary (OOV) handling, and lattice path rewriting. The system relies on precompiled binary dictionaries (system and user) built from CSV lexicons, and supports three segmentation modes (A, B, C) to balance between shortest and longest tokenization for different use cases. Internally, Sudachi uses a double-array trie for fast common-prefix search, memory-mapped file I/O for efficient dictionary loading, and a Viterbi-style lattice search for optimal path selection. The project includes a command-line interface, a comprehensive test suite, JMH benchmarks, and CI/CD pipelines. It is designed for embedding in larger applications (e.g., Elasticsearch via a separate plugin) and has been used in production at Works Applications.
Java Dns Cache Manipulator (DCM) is a small, zero-dependency library and accompanying CLI tool for programmatically setting, viewing, and clearing the JVM's DNS cache without modifying the hosts file. It works by using reflection to access private fields of `java.net.InetAddress` and `sun.net.InetAddressCachePolicy`. The library handles both pre-JDK 9 (old `InetAddress.CacheEntry` model) and JDK 9+ (new `CachedAddresses`/`CachedLookup` model), making it compatible with JDK 8 through 26. The tool module uses the Java Attach API to inject a Java agent into a running JVM process to execute commands like get, set, remove, list, or clear DNS cache entries. The code is well-structured with clear separation between API, internal implementation, agent, and tool modules. It is thread-safe, immutable value objects (DnsCacheEntry, DnsCache) are used, and extensive Kotlin-based tests ensure correctness across multiple JDK versions.
This repository is a Java/Kotlin client library for the Telegram Bot API, providing type-safe wrappers for all bot API methods and models. The architecture is a classic library with a fluent builder pattern: users create request objects (e.g., `SendMessage`, `GetUpdates`), execute them via the `TelegramBot` class, and receive typed responses. The library handles both synchronous and asynchronous execution, supports long-polling and webhook modes, and includes Telegram Passport encryption/decryption utilities. The codebase is well-structured, with clear separation into model, request, response, and utility packages. It features custom Gson adapters for polymorphic API types (e.g., reaction types, chat boost sources) that demonstrate a clean discriminated union deserialization pattern. The library is actively maintained, tracking Telegram Bot API updates closely, and includes Kotlin extension functions for idiomatic usage. It is not a data research project; it is purely an integration library.
GeoTools is an open-source Java library for geospatial data manipulation, implementing OGC standards and providing a modular architecture for data access, styling, rendering, and coordinate reference systems. It supports a wide range of vector and raster formats through JDBC plugins (PostGIS, Oracle, SQL Server, etc.), shapefile, GeoPackage, GeoTIFF, NetCDF, and more. The library is used as the foundation for GeoServer and other GIS applications, offering a rich set of filter functions, process framework, and XML binding infrastructure for OGC web services (WMS, WFS, WCS, WPS). The codebase is well-structured with extensive test coverage, though some modules are marked as unsupported and may have lower maintenance priority.
JDA (Java Discord API) is a comprehensive Java library for building Discord bots. It provides a full-featured client for Discord's REST API and Gateway (WebSocket) protocol, including support for slash commands, message components (buttons, select menus, modals), voice/audio (Opus, DAVE encryption), auto-moderation, scheduled events, forum channels, polls, stickers, soundboard, and sharding. The architecture is event-driven with a rich hierarchy of typed events, an asynchronous request system (RestAction) with combinators (map, flatMap, delay), and a fluent manager pattern for entity modifications. It includes a custom component tree with immutable replacement, ETF (Erlang External Term Format) encoding for gateway payloads, and a thread-safe caching layer using Trove maps. The codebase is well-structured with extensive unit tests, snapshot testing, and architecture compliance tests. It is actively maintained with regular releases and a large community.
pg-index-health is an embeddable Java library and schema linter for PostgreSQL that detects common database anti-patterns and promotes best practices. It provides over 40 diagnostic checks covering duplicated/intersected indexes, bloat, missing indexes, inappropriate column types, naming violations, unlogged tables, sequence overflow, and many more. The library is designed for integration into applications (via Spring Boot starter) or use in CI pipelines to enforce schema quality. It supports both single-host and high-availability PostgreSQL clusters, with checks that can run statically (against schema only) or require accumulated statistics. The architecture is a multi-module Gradle project: `pg-index-health-model` defines immutable domain objects (Table, Index, Column, ForeignKey, etc.) with validation and composable predicates; `pg-index-health-core` implements host-level checks using a template pattern (`AbstractCheckOnHost`) with SQL queries loaded from a separate submodule; `pg-index-health` wraps these into cluster-level checks (`AbstractCheckOnCluster`) that aggregate results across primary and standby nodes; `pg-index-health-jdbc-connection` provides connection factories with primary host detection and multi-host URL parsing; `pg-index-health-generator` produces corrective SQL migrations; `pg-index-health-logger` formats results; and `pg-index-health-testing` offers Testcontainers-based test fixtures. Optional Jackson 2/3 modules enable JSON serialization of results. Key entry points include `StandardChecksOnHost` and `StandardChecksOnCluster` which enumerate all available checks, and the Spring Boot auto-configuration (`DatabaseStructureHealthAutoConfiguration`) that registers check beans. Data flows involve querying PostgreSQL system catalogs (`pg_catalog`, `pg_stat_*`), mapping result sets to domain objects via `ResultSetExtractor` implementations, applying exclusion predicates (e.g., skip Flyway/Liquibase tables, small tables, named objects), and returning lists of deviations. External dependencies are minimal: PostgreSQL JDBC driver, Apache DBCP2 connection pool, and Testcontainers for testing. The library is published to Maven Central and includes a BOM for dependency management.
Alibaba Druid is a production-grade Java library providing a high-performance JDBC connection pool, a multi-dialect SQL parser, an SQL injection firewall, and built-in monitoring/statistics. In production, it replaces or augments standard connection pools (HikariCP, DBCP) with advanced features like connection leak detection, PSCache, and web console monitoring. The SQL parser supports 30+ dialects (MySQL, PostgreSQL, Oracle, Hive, ClickHouse, etc.) and is used for SQL formatting, parameterization, and analysis. The WallFilter provides configurable security rules to block SQL injection and dangerous operations. The library integrates deeply with Spring Boot via dedicated starters for Boot 2/3/4, and exposes metrics through JMX. Architecture is organized around a filter chain pattern for intercepting JDBC calls, a visitor pattern for AST manipulation, and an SPI-based provider system for firewall rules.
Discord4J is a reactive, modular Java library for building Discord bots. It provides a high-level abstraction over Discord's REST API, Gateway WebSocket, and Voice protocols, built on Project Reactor and Netty. The library is structured into separate modules: `common` (shared utilities, store abstraction, rate limiting), `rest` (HTTP client with rate limiting and retry), `gateway` (WebSocket client with state management), `core` (domain objects, event system, spec builders), `voice` (voice connection with encryption and DAVE protocol), and `oauth2` (OAuth2 authentication). The architecture follows a layered design with pluggable components for caching (StoreLayout), rate limiting (GlobalRateLimiter), serialization (ExchangeStrategies), and event dispatching. The codebase demonstrates strong software engineering practices: extensive use of immutable specs via the Immutables library, reactive streams for all I/O, and a comprehensive event hierarchy mirroring Discord's API. However, it contains a mix of deprecated legacy specs and newer immutable specs, some experimental features, and a few duplicated utilities. Overall, it is a well-crafted, production-ready library with active maintenance and good reusability in its core patterns.
redis-replicator is a Java library for Redis replication and data parsing. It provides event-driven APIs to consume Redis RDB snapshots, AOF logs, and live replication streams (PSYNC/SCAN). The architecture is based on a `Replicator` interface with multiple implementations (`RedisRdbReplicator`, `RedisAofReplicator`, `RedisSocketReplicator`, `RedisMixReplicator`, `RedisScanReplicator`). Key entry points are `RedisReplicator` (facade) and `Configuration` (URI-based settings). Data flows: raw bytes from Redis or files are parsed by `RdbParser` or `CommandParser` into typed `Event` objects (e.g., `KeyValuePair`, `Command`), which are dispatched to registered `EventListener` instances. The library supports all major Redis data types, commands, and versions 2.6–8.4.x, with extensions for Valkey and custom modules. External dependencies include SLF4J for logging and Jedis for online tests. It is used for data migration, backup, real-time synchronization, and building custom Redis-compatible tools.
Jayway JsonPath is a mature Java library that implements Stefan Goessner's JSONPath specification, providing an XPath-like query language for JSON documents. It enables reading, filtering, writing, and transforming JSON data through a fluent API. The core entry point is the `JsonPath` class, which offers static methods like `read()` and `parse()`, returning `DocumentContext` for chained operations such as `set()`, `delete()`, `add()`, `put()`, `renameKey()`, and `map()`. The library supports a rich filter system via `Filter`, `Criteria`, and `Predicate` interfaces, allowing both inline path filters (e.g., `[?(@.price < 10)]`) and programmatic construction. It also includes a function system for aggregation (`min`, `max`, `avg`, `sum`, `stddev`) and text operations (`length`, `concat`). Architecturally, the library follows a Service Provider Interface (SPI) pattern with `JsonProvider` and `MappingProvider` abstractions, enabling pluggable JSON backends. It ships with providers for Jackson 2, Jackson 3, Gson, Json-smart, JsonOrg, Jakarta JSON-P, Jettison, and Tapestry. The `Configuration` class is immutable and built via a builder, centralizing options like `REQUIRE_PROPERTIES` and `DEFAULT_PATH_LEAF_TO_NULL`. Path compilation is cached via a configurable `CacheProvider` (default LRU). The separate `json-path-assert` module provides Hamcrest matchers (`hasJsonPath`, `withJsonPath`, `isJson`) for testing. External dependencies are minimal for the core module (only `net.minidev:json-smart` for the default provider), with optional dependencies for other providers. The library is built with Gradle, targets Java 17, and has extensive JUnit 5 test coverage including regression tests for hundreds of reported issues. It is designed for integration into any Java application that needs to query or manipulate JSON data programmatically.
This repository provides TransmittableThreadLocal (TTL), a Java library that extends InheritableThreadLocal to propagate thread-local values across threads even when using thread pools, executors, ForkJoinPool, and other asynchronous constructs. It solves the common problem of context loss (e.g., tracing, security, session) in asynchronous Java applications. The library offers three usage modes: manual wrapping of Runnable/Callable via TtlRunnable/TtlCallable, wrapping executors via TtlExecutors, and transparent bytecode transformation via a Java Agent (TtlAgent) that automatically instruments JDK thread pool classes. The architecture is modular: ttl-core contains the core API and CRR (Capture-Replay-Restore) pattern, ttl-agent provides the agent with Javassist-based transformlets, ttl-kotlin adds Kotlin extensions, and ttl-integrations includes Vert.x 3/4 support. A ttl2-compatible module maintains backward compatibility with the v2 API. The library is widely adopted in the Java ecosystem (e.g., Apache ShardingSphere, SOFARPC) and is under active development with a v3 branch introducing a refined API. While primarily a library, it includes a Java Agent component that operates at the JVM level, making it a hybrid of library and instrumentation tool.