Help us understand the problem. What is going on with this article?

Awesome Java : 素晴しい Java フレームワーク・ライブラリ・ソフトウェアの数々

元記事: Awesome Java

Awesome List in Qiita

Bean マッピング

Bean マッピングを容易にするフレームワーク

  • dOOv - 型安全なドメインモデルの検証とマッピングのための API を提供します. アノテーション, コード生成, および型安全 DSL を使用して, Bean の検証とマッピングを迅速かつ簡単にします.
  • Dozer - アノテーション, API または XML 設定を使用して, あるオブジェクトから別のオブジェクトへデータをコピーするマッパー.
  • JMapper - 高速コードマッピングのためにバイトコード操作を使用. アノテーション, API または XML 設定をサポートします.
  • MapStruct - コンフィグレーションアプローチの慣例に基づいて, 異なる Bean タイプ間のマッピングを単純化するコードジェネレータ.
  • ModelMapper - ModelMapper は, オブジェクトをお互いに自動的にマッピングするインテリジェントなオブジェクトマッピングライブラリです.
  • Orika - Orika は, Java Bean マッピングフレームワークで, あるオブジェクトから別のオブジェクトに(他の機能の中でも)データを再帰的にコピーします.
  • Selma - 愚かしいほど単純な, 静的リンクマッパー. アノテーションプロセスベース Bean マッパーです.

ビルド

アプリケーションのビルドサイクルと依存関係を処理するツール

  • Apache Maven - 宣言的なビルドと依存関係管理. 手続き的アプローチを使い, 維持するのが難しい Apache Ant にとっては好ましいかもしれません.
  • Bazel - コードを迅速かつ確実にビルドするための, Google によるビルドツール.
  • Gradle - XML で宣言するのではなく, Groovy を介してプログラムされるインクリメンタルなビルド. Maven の依存関係管理をうまく動作させます.

バイトコード操作

プログラムでバイトコードを操作するライブラリ

  • ASM - 汎用, 低レベル, バイトコードの操作と解析.
  • Byte Buddy - 流暢な API を使用して, バイトコードの生成をさらに簡素化します.
  • bytecode-viewer - Java 8 Jar & Android APK リバースエンジニアリングスイート. (GPL-3.0 のみ)
  • Byteman - 主に, テスト/トラブルシューティングのために, 実行時にバイトコードを DSL(ルール)で操作します. (LGPL-2.1 もしくはそれ以降)
  • cglib - バイトコード生成ライブラリ.
  • Javassist - バイトコードの編集を単純化します.
  • Mixin - 実際の Java コードを使用して, 実行時にバイトコードを管理します.
  • Perses - カオスエンジニアリングの原理に従って、バイトコードレベルで障害/待ち時間を動的に挿入します.

キャッシング

キャッシング機能を提供するライブラリ

  • cache2k - インメモリハイパフォーマンスキャッシングライブラリ.
  • Caffeine - 高性能で最適なキャッシングライブラリ.
  • Ehcache - 分散型汎用キャッシュ.
  • Infinispan - キャッシュのための高機能キーバリューデータストア.

CLI

CLI に関する全てのライブラリ

  • ASCII Table - ASCII でテーブルを描画できるライブラリ.
  • Airline - Git のようなコマンドライン引数を解析するアノテーションベースのフレームワーク.
  • args4j - javac に似た引数のようなコマンドを解析する小さなライブラリ.
  • Jansi - コンソール出力をフォーマットする ANSI エスケープコード.
  • Java ASCII Render - コンソール用のグラフィカルプリミティブ.
  • JCommander - インターフェイスを実装することによりカスタムタイプと検証で, コマンドライン引数を解析するフレームワーク.
  • jbock - 型安全かつリフレクションを使用していない, アノテーションベースのコマンドラインパーサー.
  • Jexer - 高度なコンソール(および Swing)テキストユーザーインターフェイス(TUI)ライブラリ. マウスでドラッグできるウィンドウ, 組み込みのターミナルウィンドウマネージャー, および sixel イメージのサポート. Turbo Vision に似ています.
  • JLine - 補完やヒストリーなどの機能を備えたモダンな Shell.
  • JOpt Simple - POSIX の getopt() と GNU getopt_long() の構文を使用する単純なパーサです. アノテーションを使用せず, API を使用します.
  • picocli - ANSI の, 色とスタイルはユーザーが使用する際の助けになります. 依存関係を避けるためのソースとして含めることもできます. アノテーションベース, POSIX/GNU/任意の構文, サブコマンド, オプションと位置指定引数の両方に対する強力な型付けを行うことができます.
  • Text-IO - フルコンソールベースアプリケーションの作成を助けます.
  • Lanterna - curses に似たコンソールテキスト GUI ライブラリ. (LGPL-3.0 のみ)

クラスターマネジメント

動的に, クラスター内部のアプリケーションを管理することができるフレームワーク

  • Apache Aurora - Apache Aurora は, 長期実行サービスと cron ジョブのための Mesos フレームワークです.
  • Apache Mesos - マシンの CPU, メモリ, ストレージ, その他のコンピューティングリソースを抽象化します.
  • Singularity - Singularity は, 配置と操作を簡単にする Mesos フレームワークです. Web サービス, バックグラウンドワーカー, スケジュールされたジョブ, および1回限りのタスクをサポートします.

コード解析

メトリクスと品質測定を提供するツール

  • Checkstyle - コーディング規則と標準の静的分析. (LGPL-2.1 もしくはそれ以降)
  • Error Prone - 一般的なプログラミングミスをコンパイル時エラーとして検出します.
  • Infer - コードの正確性を検証するための最新の静的解析ツール.
  • jQAssistant - Neo4J ベースのクエリ言語による静的コード解析. (GPL-3.0 のみ)
  • NullAway - ビルド時のオーバーヘッドで NullPointerExceptions を排除します.
  • PMD - 悪いコーディング習慣を見つけるためのソースコード分析.
  • SonarJava - SonarQube & SonarLint 用静的アナライザー. (GPL-3.0 のみ)
  • Sourcetrail ![c] - ビジュアルソースコードナビゲータ.
  • Spoon - Java ソースコードを解析し変換するためのライブラリ.
  • Spotbugs - 潜在的なバグを見つけるためのバイトコードの静的解析. (GPL-3.0 のみ)

コードカバレッジ

テストスイートのコードカバレッジメトリックの収集を可能にするフレームワークおよびツール

  • Clover - バイトコード計測の代わりに, ソースコード計測に依存する Atlassian 独自のコードカバレッジツール.
  • Cobertura - コード・カバレッジ・メトリックを収集するために, オフライン(または静的)バイトコード計測とクラス・ロードに依存します. (GPL-2.0 のみ)
  • JaCoCo - オフラインとランタイムの両方のバイトコード計測を使用して, コードカバレッジメトリックを収集できるフレームワーク. 著名な Eclipse コードカバレッジプラグインである, EclEmma によって使用されています.

コード生成

冗長性とエラーの可能性を減らすために, 繰り返しコードのパターンを生成するツール

  • ADT4J - 代数的データ型用の JSR-269 コードジェネレータ.
  • Auto - ファクトリ, サービス, および値クラスを生成します.
  • FreeBuilder - Builder パターンの自動生成.
  • Immutables - シンプルで安全で一貫したバリューオブジェクトを生成するアノテーションプロセッサー.
  • JavaPoet - ソースファイルを生成するための API.
  • JHipster - Spring Boot と AngularJS 用の Yeoman ソースコードジェネレータ.
  • Joda-Beans - クエリ可能なプロパティを Java に追加し, JavaBeans を強化する小さなフレームワーク.
  • Lombok - 冗長を減らすことを目的としたコードジェネレータ.

コンパイラ

パーサ, インタプリタ, コンパイラの作成に役立つフレームワーク

  • ANTLR - トップダウン解析用の複雑なフル機能のフレームワーク.
  • JFlex - 字句解析ジェネレータ.

コンフィグレーション

外部設定を提供するライブラリ

  • centraldogma - Java で書かれた分散アプリ用の最新の設定ライブラリ.
  • cfg4j - Git, ZooKeeper, HTTP/2 をベースとした高可用性のバージョン管理サービス構成リポジトリ.
  • config - JVM 言語用の設定ライブラリ.
  • dotenv - Java 用の 12 要素構成ライブラリー.
  • ini4j - Windows の INI ファイルを処理するための API を提供します.
  • KAConf - Java および Kotlin 用のアノテーションベース構成システム.
  • owner - プロパティの定型文を減らします.

制約充足問題解決

最適化と充足可能性の問題の実装に役立つライブラリ

  • Choco - 制約プログラミング技法を使用する, 制約充足問題解決.
  • JaCoP - FlatZinc 言語用のインターフェイスを含み, MiniZinc モデルを実行できるようにします. (AGPL-3.0)
  • OptaPlanner - ビジネスプランニングとリソーススケジューリング最適化ソルバー.

CSV

CSV データの読み書きを簡素化するフレームワークとライブラリ

  • jackson-dataformat-csv - Jsckson 拡張のための, リーダー&ライター.
  • opencsv - シンプルな CSV パーサー.
  • Super CSV - Dozer, Joda-Time, Java 8 をサポートする強力な CSV パーサー.
  • uniVocity-parsers - 最も速く, 最も機能が豊富な CSV パーサーの1つです. また, TSV と固定幅レコードのパーサも付属しています.

データベース

データベースとのやりとりを簡単にする

  • Apache Drill - ビッグデータ探索用の分散スキーマオンザフライ ANSI SQL クエリエンジン.
  • Apache Phoenix - 低遅延アプリケーション用の HBase 上の高性能リレーショナルデータベースレイヤー.
  • AranoDB - ArangoDB Java ドライバ.
  • Chronicle Map - 効率的なメモリ内(ディスクに保存されたまま)の off-heap key-value ストア.
  • druid - ハイパフォーマンス, カラム指向, 分散データストア.
  • eXist - NoSQL ドキュメントデータベースとアプリケーションプラットフォーム. (LGPL-2.1 のみ)
  • FlexyPool - 最も一般的な接続プーリングソリューションにメトリックとフェールオーバー戦略をもたらします.
  • Flyway - 簡単なデータベース移行ツール.
  • H2 - メモリ内機能が特長の小さな SQL データベース.
  • HikariCP - 高性能 JDBC 接続プール.
  • jasync-sql - MySQL と PostgresSQL で使用できる, 非同期データベースドライバ.
  • JDBI - JDBC の便利な抽象化.
  • Jedis - コマンドのためのメソッドと, Redis との対話のための小さなクライアント.
  • Jest - Elasticsearch REST API クライアント.
  • jetcd - etcd のクライアントライブラリ.
  • Jinq - Java 8 Lambdas(JPA または jOOQ の上にある)のシンボリック実行を介したタイプセーフなデータベース参照.
  • jOOQ - SQL スキーマに基づいて型保証されたコードを生成します.
  • Liquibase - 追跡, 管理, データベース・スキーマの変更を適用するための, データベースに依存しないライブラリ.
  • MapDB - ディスクまたはオフヒープメモリにバックアップされた, 並行コレクションを提供する組み込みデータベースエンジン.
  • MariaDB4j - インストールまたは外部依存関係を必要としない MariaDB のランチャー.
  • OrientDB - Hazlcast 上に書かれた埋め込み可能な分散型データベース.
  • Presto - 大規模データ用の分散 SQL クエリエンジン.
  • Querydsl - タイプセーフ統一クエリ.
  • Realm - 電話機, タブレット, またはウェアラブルの中で直接実行されるモバイルデータベース.
  • Redisson - Redis サーバーの上に分散型およびスケーラブルなデータ構造を可能にします.
  • requery - モダンで軽量ながら強力なオブジェクトマッピングと SQL ジェネレータ. Java を使用するすべてのプラットフォームから簡単にデータベースへのマッピングまたはデータベースの作成, クエリおよび更新の実行.
  • Speedment - クエリーのために Java 8 Stream API を使用するデータベースアクセスライブラリ.
  • sql2o - データベースへのアクセスを簡素化し, ResultSet を POJO に簡単にマッピングできる Thin JDBC ラッパーです.
  • Vibur DBCP - 高度なパフォーマンス監視機能を提供する JDBC 接続プールライブラリ.
  • Xodus - 並行トランザクションスキーマレスおよび ACID 準拠の組み込みデータベース.

データ構造

効率的で具体的なデータ構造

  • Apache Avro - 動的な型指定, タグなしのデータ, 手動で割り当てられた ID の欠如などのデータ交換フォーマット.
  • Apache Orc - Hadoop ベースのワークロードのための, 高速かつ効率的な円柱ストレージ形式.
  • Apache Parquet - Google の Dremel の論文のアセンブリアルゴリズムに基づいた, カラム形式のストレージフォーマット.
  • Apache Thrift - Facebook が開発したデータ交換形式.
  • Big Queue - メモリマップされたファイルに基づく, 大きくて高速で永続的なキュー.
  • HyperMinHash-java - loglog space における和集合, 積集合, 集合基数を計算するための確率的データ構造.
  • Persistent Collection - 永続的で不変な Java Collections フレームワーク.
  • Protobuf - Google のデータ交換フォーマット.
  • SBE - 単純なバイナリエンコーディング. 最速のメッセージフォーマットの1つです.
  • Tape - 超高速, トランザクション, ファイルベースの FIFO.
  • Wire - きれいで軽量なプロトコルバッファー.

日時

日時を扱うライブラリ

  • Almanac Converter - 異なるカレンダーシステム間の変換を簡単にします.
  • iCal4j - iCalendar RFC 5545 データモジュールの解析と構築.
  • ThreeTen-Extra - JDK 8 のものを補完する追加の日時クラス.
  • Time4J - 高度な日時ライブラリ. (LGPL-2.1 のみ)

依存注入

Inversion of Control のパラダイムを実現するのに役立つライブラリ

  • Apache DeltaSpike - CDI 拡張フレームワーク.
  • Dagger2 - リフレクションのない, コンパイル時のインジェクションフレームワーク.
  • Feather - 超軽量, JSR-330 準拠依存性注入ライブラリ.
  • Guice - Dagger を完成させる軽量ながら強力なフレームワーク.
  • HK2 - 軽量で動的な依存性注入フレームワーク.
  • JayWire - 軽量な依存注入フレームワーク.

開発

基本的なレベルでの開発プロセスの強化

  • AspectJ - シームレスなアスペクト指向プログラミング拡張.
  • DCEVM - 実行時にロードされたクラスの無制限の再定義を可能にする JVM の変更.
  • Faux Pas - Java Runtime の機能インタフェースのいずれも, デフォルトでチェック例外をスローすることができないという問題を回避して, エラー処理を簡素化するライブラリです.
  • HotswapAgent - 無制限の実行時クラスとリソースの再定義.
  • JavaParser - 動的に, Java コードを解析, 変更, 生成します.
  • JavaSymbolSolver - Java のためのシンボルソルバー.
  • JRebel ![c] - 再デプロイせずに, コードと構成の変更を直ちに再ロードします.
  • Manifold - Type-safe Metaprogramming , Structural Typing, および Extension Methods のような強力な機能で Java を再活性化する単一の jar ファイル
  • NoException - 機能インタフェースでチェック例外を許可し, 例外をオプショナルリターンに変換します.
  • SneakyThrow - バイトコードの操作せず, チェック済みの例外を無視します. Java 8 ストリーム操作内でも使用できます.

分散アプリケーション

分散アプリケーションとフォールトトレラントアプリケーションを作成するためのライブラリとフレームワーク

  • Apache Geode - 信頼性の高い非同期イベント通知と保証されたメッセージ配信を提供するメモリ内データ管理システム.
  • Apache Storm - リアルタイム計算システム.
  • Apache ZooKeeper - 大規模分散システム用の分散構成, 同期, および命名レジストリによる調整サービス.
  • Atomix - フォールトトレラント分散協調フレームワーク.
  • Axon Framework - CQRS アプリケーションを作成するためのフレームワーク.
  • Dropwizard Circuit Breaker - dropwizard の回路ブレーカの設計パターン.
  • Failsafe - リトライと回路ブレーカーによる簡単な障害処理.
  • Hazelcast ![c] - 無料のオープンソースバージョンを備えたスケーラブルなメモリ内データグリッド.
  • JGroups - 信頼できるメッセージングとクラスタ作成のためのツールキット.
  • Orbit - 仮想アクター. 伝統的なアクターに別のレベルの抽象化を追加します.
  • Quasar - JVM 用の軽量のスレッドとアクター.
  • resilience4j - 関数型フォールトトレランスライブラリー.
  • ScaleCube - 埋め込み型クラスタ - SWIM とゴシッププロトコルに基づくメンバシップライブラリ.
  • Zuul - 動的ルーティング, モニタリング, 復元力, セキュリティなどを提供するゲートウェイサービス.

分散トランザクション

分散トランザクションは, 同時アクセスおよび部分的な障害が発生してもデータ更新の一貫性を保証するためのメカニズムを提供します.

  • Atomikos - JTA および XA をサポートする REST, SOA およびマイクロサービスのトランザクションを提供します.
  • Bitronix - JTA 1.1 API のシンプルで完全な実装.
  • Narayana - 伝統的な ACID およびトランザクションをサポートし, JTA, JTS およびその他の規格にも準拠しています.

配布

ネイティブ形式のアプリケーションの配布を処理するツール

  • Bintray ![c] - パブリッシングを処理するバイナリのバージョン管理. また, Maven や Gradle で使用することもでき, オープンソースソフトウェアや, いくつかのビジネスプランのための無料プランがあります.
  • Boxfuse ![c] - 不変インフラストラクチャの原則を使用して, AWS に JVM アプリケーションをデプロイします.
  • Capsule - シンプルでパワフルなパッケージングと展開. JVM に最適化されたコンテナをサポートする, 「Java 用の Docker」.
  • Central Repository - オープンソースコミュニティへの無料サービスとして利用できる最大のバイナリコンポーネントリポジトリ. Apache Maven で使用され, 他のすべてのビルドツールで使用可能なデフォルト.
  • Cloudsmith ![c] - Maven/Gradle/SBT をサポートする完全に管理された, パッケージ管理 SaaS.
  • IzPack - クロスプラットフォーム環境向けのセットアップオーサリングツール.
  • JitPack ![c] - GitHub のための使いやすいパッケージリポジトリ. オンデマンドで Maven/Gradle プロジェクトを構築し, すぐに使えるパッケージを公開します.
  • Nexus ![c] - プロキシとキャッシング機能を備えたバイナリ管理.
  • packr - Windows, Linux, Mac OS X 上の JAR, アセット, および JVM をネイティブ配布用にパックします.
  • really-executable-jars-maven-plugin - 自己実行型 JAR を作成するための Maven プラグインです.

ドキュメント処理

オフィス文書フォーマットの処理を支援するライブラリ

  • Apache POI - OOXML(XLSX, DOCX, PPTX)と OLE2(XLS, DOC または PPT)をサポートします.
  • documents4j - MS Word などのサードパーティのコンバータを使用したドキュメントフォーマット変換用の API.
  • docx4j - Microsoft Open XML ファイルの作成と操作.
  • XlsMapper - excel ファイルの読み込み・書き込み. また, Java Beans へのマッピングができる.
  • zerocell - オーバーヘッドの削減に重点を置いて, Excel シートから POJO にデータを読み込むためのアノテーションベースの API.

フォーマルバリデーション

フォーマルメソッドツール:証明アシスタント, モデルチェック, シンボリック実行など

  • CATG - Concolic ユニットテストエンジン. 正式な方法を使用して単体テストを自動的に生成します.
  • Checker Framework - プラッガブルタイプのシステム. nullness タイプ, 物理ユニット, 不変型などが含まれます.
  • Daikon - Daikon は, プログラムの不変量を検出し, その不変量に基づいて JML 仕様を生成することができます.
  • Java Path Finder (JPF) - モデルチェッカーなどを含む JVM フォーマル検証ツール. NASA によって作成されました.
  • JMLOK 2.0 - フィードバック指向のランダムテスト生成によりコードと JML 仕様の間の不適合を検出し, 検出された各不適合の可能性のある原因を示します.
  • KeY - KeY システムは, オブジェクト指向ソフトウェアの設計, 実装, 正式仕様, 正式な検証を可能な限りシームレスに統合することを目指す, 正式なソフトウェア開発ツールです. 検証のための仕様とシンボリック実行に JML を使用します.
  • OpenJML - JML の仕様を SMT-LIB 形式に変換し, プログラムが暗示している証明上の問題をバックエンドのソルバに渡します.

関数プログラミング

関数プログラミングを容易にするライブラリ

  • cyclops-react - モナドとストリームのユーティリティー, 解説, パターンマッチング, すべての JDK コレクションの機能拡張, トランポリンなど.
  • derive4j - 代数的データ型コンストラクタ, パターンマッチング, モーフを導出するための Java 8 アノテーションプロセッサとフレームワーク.
  • Fugue - Guava の機能拡張.
  • Functional Java - コンポジション指向開発を支援する, 多数の基本的かつ高度なプログラミング抽象化を実装します.
  • jOOλ - lambda のギャップを修正することを目的とした Java 8 の拡張機能. 数多くの欠落しているタイプと, 豊富な一連の Stream API 追加機能を提供します.
  • protonpack - ストリームユーティリティのコレクション.
  • StreamEx - Java 8 ストリームを拡張します.
  • Vavr - 永続的なデータ型と機能制御構造を提供する機能コンポーネントライブラリ.

ゲーム開発

ゲームの開発をサポートするフレームワーク

  • jMonkeyEngine - モダンな 3D ゲーム開発のためのゲームエンジン.
  • libGDX - オールラウンドクロスプラットフォーム, ハイレベルなフレームワーク.
  • LWJGL - OpenGL/CL/AL のようなライブラリを抽象化する強力なフレームワーク.
  • FXGL - Java FX ゲーム開発フレームワーク.

地理空間

地理空間データとアルゴリズムを扱うライブラリ

  • Apache SIS - 地理空間アプリケーションを開発するためのライブラリ.
  • Geo - GeoHash ユーティリティ.
  • Geotoolkit.org - 理空間アプリケーションを開発するためのライブラリ. Apache SIS プロジェクトの上に構築されています.
  • GeoTools - 地理空間データ用のツールを提供するライブラリ.
  • GraphHopper - ロードルーティングエンジン. Java ライブラリまたはスタンドアロン Web サービスとして使用されます.
  • H2GIS - H2 データベースの空間的拡張.
  • Jgeohash - Java 開発者が GeoHash アルゴリズムを使用する際に役立つライブラリ.
  • Mapsforge - OpenStreetMap データに基づくマップのレンダリング用ソフトウェア.
  • Spatial4j - 空間/地理空間 ASL ライセンスの, 汎用的なオープンソース Java ライブラリ.

GUI

モダンなグラフィカルユーザーインターフェイスを作成するためのライブラリ

  • JavaFX - Swing の後継です.
  • Scene Builder - JavaFX アプリケーション用のビジュアルレイアウトツール.
  • SWT - 標準ウィジェットツールキット(SWT)は, Java プラットフォームで使用するグラフィカルなウィジェットツールキットです.

ハイパフォーマンス

コレクションから特定のライブラリまでの高性能計算に関するすべて

  • Agrona - 高性能アプリケーションで一般的な, データ構造とユーティリティメソッド.
  • Disruptor - スレッド間メッセージングライブラリ.
  • Eclipse Collections - Smalltalk に触発されたコレクションフレームワーク.
  • fastutil - 高速かつコンパクトなタイプ固有のコレクション.
  • HPPC - プリミティブコレクション.
  • JCTools - 現在の JDK にはない並行性ツール.
  • Koloboke - ハッシュセットとハッシュマップ.

HTTP クライアント

HTTP リクエストの作成, および/またはレスポンスの結合を支援するライブラリ

  • Armeria - Java 8, Netty, HTTP/2, Thrift, および gRPC の上に構築された非同期 RPC/REST クライアント/サーバーライブラリ.
  • Async Http Client - 非同期 HTTP と websocket クライアントのライブラリー.
  • Feign - Retrofit, JAXRS-2.0, そして WebSocket にインスパイアされた, HTTP クライアントバインダーライブラリー.
  • OkHttp HTTP + SPDY クライアント.
  • Play WS - リアクティブストレームとキャッシングを使用した, 型安全なクライアント.
  • restQL-core-java - 複数のサービスから情報を取得する, マイクロサービスクエリ言語.
  • Retrofit - 型安全な REST クライアント.
  • Ribbon - クライアントサイドの IPC ライブラリー.
  • Riptide - Spring の RestTemplate のための, クライアントサイドレスポンスルーティング.
  • unirest-java - シンプルで軽量な HTTP クライアントライブラリ.

ハイパーメディアタイプ

ハイパーメディアタイプへのシリアライズを処理するライブラリ

IDE

開発を単純化する統合開発環境

  • Eclipse - 多くのプラグインと言語をサポートする, オープンソースプロジェクト.
  • IntelliJ IDEA ![c] - 多くの JVM 言語をサポートし, Android 開発にも適したオプションを提供しています.
  • NetBeans - データベースアクセスから HTML5 への Java SE および EE 機能の統合を提供します.
  • Visual Studio Code - マーケットプレースの拡張機能を使用して, シンプルでモダンなワークフローの Java サポートを提供します.

画像

グラフィカルイメージの作成, 評価, 操作を支援するライブラリ

  • Imgscalr - 純粋な Java 2D で実装された, シンプルで効率的なハードウェアアクセラレーションの画像スケーリングライブラリ.
  • Tess4J - Tesseract OCR API の JNA ラッパー.
  • Thumbnailator - Thumbnailator は, Java 用の高品質のサムネイル生成ライブラリです.
  • TwelveMonkeys - サポートされているイメージファイル形式の数を拡張するプラグインのコレクション.
  • ZXing - マルチフォーマット 1D/2D バーコード画像処理ライブラリ.
  • image-comparison - 同じサイズの2つの画像を比較し, 長方形を描画して視覚的に違いを示します.

イントロスペクション

Java のイントロスペクションおよびリフレクション API をより簡単かつ高速に使用できるようにするライブラリ.

  • Classgraph - ClassGraph は, Java, Scala, Kotlin, およびその他の JVM 言語向けの超高速, 超軽量, 並列化されたクラスパススキャナーおよびモジュールスキャナーです.
  • jOOR - jOOR は, jOOR Object Oriented Reflection の略です. これは, java.lang.reflect パッケージの単純なラッパーです.
  • Mirror - Mirror は ReflectionUtil という名の単純な問題に光をもたらすために作成されました. これは、高度なタスクを行うためにリフレクションに依存するほとんどすべてのプロジェクトにあります.
  • ReflectASM - ReflectASM は, コード生成を使用して高性能のリフレクションを提供する非常に小さな Java ライブラリです.
  • Reflections - Reflections はクラスパスをスキャンし, メタデータのインデックスを作成し, 実行時にクエリを実行できるようにし, プロジェクト内の多くのモジュールの情報を保存および収集できます.

JSON

JSON を Java オブジェクトとの間でシリアル化およびデシリアライズするためのライブラリ

  • Genson - 強力で使いやすい Java から JSON への変換ライブラリ.
  • Gson - オブジェクトを JSON にシリアル化, またその逆を行います.
  • HikariJSON - Jacksonより2倍高速で, 高性能な JSON パーサです.
  • jackson-modules-java8 - Java 8 のデータ型と機能のための Jackson モジュールのセット.
  • Jackson-datatype-money - JavaMoney データ型の JSON 直列化と非直列化をサポートする, オープンソースの Jackson モジュール.
  • Jackson - GSON に似ていますが, ライブラリをより頻繁にインスタンス化する必要がある場合は, パフォーマンスが向上します.
  • JSON-io - Java を JSON に変換, JSON を Java に変換します.
  • jsoniter - イテレータと遅延解析 API を備えた高速で柔軟なライブラリです.
  • LoganSquare - Jackson のストリーミング API に基づいた, JSON の解析とシリアライズライブラリ. GSON & Jackson のライブラリより優れています.
  • Moshi - 近代的な JSON ライブラリ. リストやマップなどの組込み型を使用する.
  • Yasson - JAXB のようにクラスと JSON ドキュメント間のレイヤーをバインドします.

JSON 処理

データを JSON 形式で処理するためのライブラリ

  • fastjson - 追加の依存関係や完全なデータバインディングを持たない非常に高速なプロセッサー.
  • Jolt - JSON から JSON への変換ツール.
  • JsonPath - XPATH のような構文を使用して JSON からデータを抽出します.
  • JsonSurfer - 大きく複雑な JSON データの処理専用の, ストリーミング JsonPath プロセッサ.

JVM 及び JDK

JVM/JDK の現在の実装

  • Adopt Open JDK - HotSpot と OpenJ9 のどちらかを選択できる OpenJDK ビルド.
  • Avian - JIT と AOT の両方のモードを持つ JVM. iOS ポートが含まれています.
  • Corretto - Amazon によるマルチプラットフォーム, プロダクション対応の OpenJDK の無償配布.
  • Graal - ポリグロットの組み込み可能な JVM.
  • Liberica JDK - OpenJDK から作られ, 徹底的にテストされ JCK に合格しました.
  • OpenJ9 - エンタープライズ・キャリバー, 柔軟にライセンスされ, オープンに管理されたクロスプラットフォーム Java Virtual Machineは, Eclipse OMR および OpenJDKプ ロジェクトからランタイム・テクノロジー・コンポーネントを拡張します.
  • OpenJDK - Linux 向けのオープンソース実装.
  • ParparVM - iOS 用のノンブロッキング並行 GC を搭載した VM.
  • RedHat Open JDK - RedHat による OpenJDK の配布.
  • Zulu - Windows, Linux, そして macOS で使用できる OpenJDK.

ロギング

アプリケーションの動作を記録するライブラリ

  • Apache Log4j 2 - 強力なプラグインと設定アーキテクチャ.
  • Graylog - 拡張ロールと権限管理に適したオープンソースアグリゲータ.
  • Kibana - ログファイルを分析し可視化します. 一部機能は有料です.
  • Logback - Groovy を介した面白い設定オプションを備えた, ロバストロギングライブラリ.
  • Logbook - HTTPリクエストとレスポンスロギングのための, 拡張可能なオープンソースライブラリ.
  • Logstash - ログファイルを管理するためのツール.
  • p6spy - コードを変更せずにすべての JDBC トランザクションのロギングを有効にします.
  • SLF4J - 実装で使用される抽象レイヤー.
  • tinylog - 静的ロガークラスを使用した軽量ロギングフレームワーク.
  • Tracer - 分散システムにおけるトレースとログの相関を呼び出す.

機械学習

機械学習を可能にする特定の統計アルゴリズムを提供するツール

  • Apache Flink - 高速で信頼性の高い大規模データ処理エンジン.
  • Apache Mahout - 協調フィルタリング, クラスタリング, 分類に焦点を当てたスケーラブルなアルゴリズム.
  • Apache Spark - データ分析クラスタコンピューティングフレームワーク.
  • DatumBox - 自然言語処理のためのいくつかのアルゴリズムと, 事前に訓練されたモデルを提供します.
  • DeepDive - 非構造化データから構造化情報を作成し, 既存のデータベースに統合します.
  • Deeplearning4j - 分散型マルチスレッド深層学習ライブラリ.
  • H2O - 大規模なデータに対する統計分析エンジン.
  • JSAT - マルチスレッド実行サポートによる前処理, 分類, 回帰, およびクラスタリングのためのアルゴリズム.
  • Oryx 2 - コラボレーティブなフィルタリング, 分類, 回帰, およびクラスタリングのためのエンドツーエンドアプリケーションを含む, リアルタイムの大規模機械学習アプリケーションを構築するためのフレームワーク.
  • Smile - Statistical Machine インテリジェンスと学習エンジンは, 機械学習アルゴリズムと視覚化ライブラリのセットを提供します.
  • Weka - 前処理から可視化までのデータマイニングタスクのためのアルゴリズム集.

メッセージング

プロトコルの独立性を保証するために, クライアント間でメッセージを送信するのに役立つツール

  • Aeron - 効率的な信頼性のあるユニキャストおよびマルチキャストメッセージ転送.
  • Apache ActiveMQ - JMS を実装し, 同期を非同期通信に変換するメッセージブローカー.
  • Apache Camel - エンタープライズ統合パターンを介して異なるトランスポート API をまとめます.
  • Apache Kafka - ハイスループット分散型メッセージングシステム.
  • Apache Pulsar - 分散型 pub/sub メッセージングシステム.
  • Apache RocketMQ - 高速で信頼性が高くスケーラブルな分散型メッセージングプラットフォームです.
  • Apache Qpid - Apache Qpid は AMQP を話し, 多くの言語とプラットフォームをサポートするメッセージングツールを作ります.
  • Hermes - Kafka の上に構築された高速で信頼性の高いメッセージブローカー.
  • EventBus - 単純なパブリッシュ/サブスクライブイベントバス.
  • JeroMQ - ZeroMQ の実装.
  • Nakadi - Kafka 上に RESTful API を提供します.
  • RabbitMQ Java client - RabbitMQ クライアント.
  • Smack - クロスプラットフォーム XMPP クライアントライブラリ.
  • NATS - NATS クライアント.

その他

その他すべて

  • Codename One - ネイティブモバイルを作成するためのクロスプラットフォームソリューション.
  • CQEngine - Java コレクションに対する SQL のような超高速クエリー.
  • Design Patterns - 最も一般的なデザインパターンの実装と説明.
  • Failsafe - リトライと回路ブレーカによる簡単な障害処理.
  • FF4J - Javaの機能フラグ.
  • FizzBuzz Enterprise Edition - 深刻なビジネス目的のために深刻なビジネスマンによって作られた FizzBu​​zz の無意味な実装.
  • J2ObjC - Android ライブラリを iOS に移植するための Java to Objective-C トランスレータ.
  • JavaCV - OpenCV, FFmpeg その他の Java インターフェース.
  • JavaX - 単純化に重点を置いて Java を再考し, 拡張する.
  • JBake - 静的なウェブサイトジェネレータ.
  • JBot - チャットボットを構築するためのフレームワーク.
  • Jcuda - JCuda は, CUDA および CUDA 関連のライブラリー用の Java バインディングを提供しています.
  • Jimfs - メモリ内ファイルシステム.
  • Joda-Money - JDK が提供していない, 基本通貨およびマネークラスおよびアルゴリズム.
  • JPad - スニペットランナー.
  • Maven Wrapper - Maven の Gradle Wrapper で, Maven をインストールせずにビルドプロジェクトを可能にします.
  • Membrane Service Proxy - Java で書かれたオープンソースのリバースプロキシフレームワーク.
  • MinimalFTP - 軽量で, 小型でカスタマイズ可能な FTP サーバー.
  • Modern Java - A Guide to Java 8 - よく使われる Java 8 のガイド.
  • Modernizer - レガシーな Java API の使用を検出します.
  • [Multi-OS Engine]((https://multi-os-engine.org) - ネイティブモバイルアプリ(iOS, Android など)を開発するためのオープンソースのクロスプラットフォームエンジン.
  • OpenRefine - 扱いにくいデータを処理するツール. クリーニング, 変換, Webサービスでの拡張, データベースへのリンク.
  • PipelinR – パイプラインでハンドラやコマンドを使用するための小さなユーティリティライブラリ.
  • Polyglot for Maven - POM モデルを XML 以外の方言で書くことを可能にする Maven 3.3.1+ の拡張.
  • Smooks - データを処理 (バインディング, 変換, メッセージ処理, 豊富化) するアプリケーションを構築するための, 拡張可能なフレームワーク.
  • Togglz - 機能トグルパターンの実装.
  • TypeTools - ジェネリック型を解決するためのツール.
  • XMLBeam - コード内のアノテーション, または XPath を使用して XML を処理します.
  • OctoLinker - GitHub 上のコードをより効率的にナビゲートするブラウザ拡張.

マイクロサービス

マイクロサービス. すなわち作成, 調整または発見を管理するためのツール

  • Apollo - 構成可能なマイクロサービスを書くためのライブラリ.
  • consul-api - Consul のクライアントで, 分散した高可用性のデータセンター対応のレジストリ/ディスカバリサービスです
  • Eureka - 回復力のあるロードバランシングとフェイルオーバーのための REST ベースのサービスレジストリ.
  • Helidon - マイクロサービスを書くための2つのスタイルのアプローチ:Functional-reactive と MicroProfile の実装の2つのスタイル.
  • Lagom - マイクロサービスベースのシステムを作成するためのフレームワーク.

モニタリング

プロダクションのアプリケーションを監視するツール

  • AppDynamics ![c] - パフォーマンスモニタ.
  • Automon - AOP と統合し, 機能の監視, またはログギングするためのツール.
  • Failsafe Actuator - Spring-Boot 環境での Failsafe Circuit Breaker の監視.
  • BugSnag ![c] - いくつかのサードパーティツールの統合による例外とエラーの監視.
  • Glowroot - オープンソース Java APM.
  • inspectIT - 即座に変更可能なフックを介して詳細な実行時情報を取得します. OpenTracing API を使用して複数のシステムでトレースをサポートし, エンドユーザーの監視とデータを関連付けることができます.
  • Instrumental ![c] - 無料の開発アカウントも利用できる, リアルタイム Java アプリケーションのパフォーマンス監視商用サービス.
  • JavaMelody - パフォーマンスの監視とプロファイリング.
  • Jaeger client - Jaeger クライアント.
  • jmxtrans - 複数の JVM に接続し, それらの属性を JMX 経由で問い合わせるためのツール. クエリは, Java 以外のプログラマが JVM 属性にアクセスできるよう, JSON に基づいています. また, Graphite, Ganglia, StatsD などの様々な入出力をサポートします.
  • Jolokia - REST の JMX.
  • Kamon ![c] - JVM 上で動作するアプリケーションを監視するためのツール.
  • Metrics - MX または HTTP を介してメトリックを公開し, それらをデータベースに送信できます.
  • New Relic ![c] - パフォーマンスモニタ.
  • Datadog ![c] - モダンなモニタリング&解析.
  • nudge4j - Java 8 用の, ブラウザからバイトコード注入を介したリモート開発者コンソール.
  • OverOps ![c] - リアルタイムエラー監視とデバッグ.
  • Pinpoint - オープンソースの APM ツール.
  • Prometheus - 多次元データモデル, DSL, 自律型サーバーノードなどを提供します.
  • SPM ![c] - JVM アプリケーション用のトランザクショントレースを配布するパフォーマンスモニタ.
  • Stagemonitor - JVM アプリケーション用のオープンソースのパフォーマンス監視とトランザクショントレース.
  • Sysmon - Java VM のための軽量なプラットフォーム監視ツール.

ネイティブ

プラットフォーム固有のネイティブライブラリで動作

  • JavaCPP - ネイティブ C++ への効率的で簡単なアクセスを提供します.
  • JNA - JNI を書かずにネイティブライブラリを扱う. 共通のシステムライブラリへのインタフェースも提供します.
  • JNR - JNI を書くことなく, ネイティブライブラリで動作します. 共通のシステムライブラリへのインタフェースも提供します. JNA と同じ目標ですが, より速く, 今後の Project Panama の基礎としての役割を果たします.

自然言語処理

テキストの処理に特化したライブラリ

  • CogCompNLP - プレーンテキスト入力のための共通アノテーターを提供します.
  • CoreNLP - スタンフォードの CoreNLP は, タグ付け, 名前付きエンティティ認識, センチメント分析などのタスクの基本ツールのセットを提供します.
  • DKPro - 言語の前処理, 機械学習, 語彙リソースなどのための再利用可能な NLP ツールのコレクション.
  • Lingua - 文章の短い段落に特に適した自然言語検出ライブラリ.
  • LingPipe - POS タギングからセンチメント分析までのさまざまなタスクのためのツールキット.

ネットワーキング

ネットワークプログラミングのためのライブラリ

  • AkkaGRPC - Akka Streams の上にストリーミング gRPC サーバーとクライアントを構築するためのサポート.
  • Comsat - 標準の Java Web 関連 API を Quasar ファイバーおよびアクターに統合します.
  • Dubbo - 高性能 RPC フレームワーク.
  • Finagle - 高並列サーバを構築するために使用される拡張可能な RPC システム. これは, いくつかのプロトコル用の統一されたクライアントおよびサーバー API を実装し, プロトコルに依存しないため, 新しいプロトコルの実装を簡素化します.
  • Grizzly - NIO フレームワーク. Glassfish のネットワーク層として使用されます.
  • gRPC - protobuf と HTTP/2 に基づく RPC フレームワーク.
  • KryoNet - NIO と Kryo を使用した効率的な TCP/UDP クライアント/サーバー. ネットワーク通信のためのクリーンでシンプルな API を提供します.
  • MINA - Java NIO を介した TCP/IP および UDP/IP によるネットワーク操作のための, 抽象的なイベント駆動の非同期 I/O API.
  • Netty - 高性能ネットワークアプリケーションを構築するためのフレームワーク.
  • Nifty - Netty 上の Thrift クライアントとサーバーの実装.
  • sshj - プログラムで SSH, SCP, SFTP を使用します.
  • TLS Channel - SSLEngine 上の ByteChannel インタフェースを実装し, 使いやすい(ソケットのような)TLS を実現します.
  • Undertow - NIO に基づくブロッキング API とノンブロッキング API の両方を提供する Web サーバー. WildFly のネットワーク層として使用されます.
  • urnlib - RFC 2141 のように URN を表現, 解析, エンコードするための Java ライブラリ.

ORM

オブジェクトの永続性を扱う API

  • Apache Cayenne - データアクセス用のクリーンで静的な API を提供します. データベースマッピング, DB リバースエンジニアリング, および生成を扱うためのGUIモデラーも含まれています.
  • Ebean - シンプルで高速なデータアクセスを提供します.
  • Doma 2 - 注釈処理や「双方向 SQL」と呼ばれるネイティブ SQL テンプレートを使用して, コンパイル時にソースコードを検証および生成するデータベースアクセスフレームワーク.
  • EclipseLink - JPA, JAXB, JCA, SDO などのいくつかの永続性標準をサポートしています.
  • Hibernate - 堅牢で, アクティブなコミュニティで広く使用されています.
  • MyBatis - ストアドプロシージャまたは SQL 文を持つオブジェクトを結合します.
  • SimpleFlatMapper - シンプルな, データベースと CSV のマッパー.

PaaS

Java Platform as a Service

PDF

PDF ファイルの作成に役立つ

  • Apache FOP - XSL-FO から PDF を作成します.
  • Apache PDFBox - PDFの 作成と操作のためのツールボックス.
  • Dynamic Jasper - JasperReports への抽象レイヤー.
  • DynamicReports - JasperReports を単純化します.
  • flyingsaucer - XML/XHTML および CSS 2.1 レンダラー.
  • iText ![c] - プログラムで PDF ファイルを作成できますが, 商用目的の場合, ライセンスが必要です.
  • JasperReports - 複雑なレポーティングエンジン.
  • Open HTML to PDF - flyingsaucer と Apache PDFBox に基づく, 最新の PDF 標準を正しくサポートしています.

パフォーマンス解析

パフォーマンス分析, プロファイリング, ベンチマークのためのツール

  • fastThread ![c] - 無料のクラウドベースのアップロードインタフェースで, スレッドダンプを解析し可視化します.
  • GCeasy ![c] - GC ログを分析し可視化するツール. 無料のクラウドベースアップロードインターフェイスを提供します.
  • honest-profiler - オーバーヘッドが少なく, バイアスのないサンプリングプロファイラです.
  • jHiccup - プラットフォーム JVM のストールを記録し, 記録します.
  • JITWatch - HotSpot JVM による JIT コンパイラの最適化を分析します.
  • JMH - JMH は, JVM をターゲットとする Java や, その他の言語で作成された, ナノ/マイクロ/ミリ/マクロのベンチマークを構築, 実行, 分析するための Java ハーネスです.
  • JProfiler ![c] - プロファイラ.
  • LatencyUtils - レイテンシの測定と報告のためのユーティリティーです.
  • XRebel ![c] - Web アプリケーションのためのプロファイラ.
  • YourKit Java Profiler ![c] - プロファイラ.

プラットフォーム

いくつかのカテゴリを含む複数ライブラリのスイートであるフレームワーク

Apache Commons

  • BCEL - バイトコードエンジニアリングライブラリ - Java クラスファイルの解析, 作成, 操作.
  • BeanUtils - Java のリフレクション API とイントロスペクション API の使いやすいラッパー.
  • BeanUtils2 - 再設計された Commons BeanUtils.
  • BSF - Bean Scripting Framework - JSR-223 を含むスクリプト言語へのインタフェース.
  • Chain - 連鎖責任パターン実装.
  • ClassScan - クラスのインターフェイス, メソッド, フィールド, およびアノテーションをロードせずに検索します.
  • CLI - コマンドライン引数パーサ.
  • CLI2 - 再設計された Commons CLI.
  • Codec - 一般的なエンコード/デコードアルゴリズム(例えば, phonetic, base64, URL).
  • Collections - Java Collections Framework を拡張または拡張する.
  • Compress - tar, zip, および bzip2 ファイルを操作するための API を定義します.
  • Configuration - 様々なフォーマットの設定/環境設定ファイルの読み込み.
  • Convert - Commons-Convert はあるタイプのオブジェクトを別のタイプのオブジェクトに変換するタスク専用の単一ライブラリを提供することを目的としています.
  • CSV - カンマ区切り値ファイル (CSV) の読み書き用コンポーネント.
  • Daemon - UNIX デーモンのような Java コードのための代替呼び出しメカニズム.
  • DBCP - データベースコネクションプールサービス.
  • DbUtils - JDBC ヘルパーライブラリ.
  • Digester - XML を Java オブジェクトにマッピングするライブラリ.
  • Email - Java から電子メールを送るためのライブラリ.
  • Exec - Java における外部プロセスの実行と環境管理を扱うための API.
  • FileUpload - サーブレットと Web アプリケーションのファイルアップロード機能.
  • Finder - UNIX の find にインスパイアされた Java ライブラリ.
  • Flatfile - フラットなデータ構造を扱うための Java ライブラリ.
  • Functor - Functor は, オブジェクトとして操作することができるファンクション, または単一の汎用ファンクションを表すオブジェクトです.
  • Graph - 汎用 Graph API とアルゴリズム
  • I18n - 一緒に属する1つまたは複数のローカライズされたテキストで構成されるローカライズされたメッセージバンドルの機能を追加します.
  • Id - Id は, 識別子を生成するために使用されるコンポーネントです.
  • Imaging - 純粋な Java イメージライブラリ.
  • IO - I/O ユーティリティのコレクション.
  • Javaflow - アプリケーションの状態を取得するための継続実装.
  • JCI - Java コンパイラインターフェース.
  • JCS - Java キャッシングシステム.
  • Jelly - XML ベースのスクリプトおよび処理エンジン.
  • Jexl - JSTL の表現言語を拡張する表現言語.
  • JNet - JNet では, java.net API を使用して動的に URL ストリームハンドラを登録することができます.
  • JXPath - XPath 構文を使用して Java Bean を操作するためのユーティリティ.
  • Lang - Java のクラスに追加機能を提供するライブラリ.
  • Logging - さまざまなロギング API 実装に関するラッパー.
  • Math - 軽量で自己完結型の数学と統計コンポーネント.
  • Monitoring - Monitoring は, Java アプリケーション用のシンプルで拡張可能な監視ソリューションを提供することを目的としています.
  • Net - ネットワークユーティリティとプロトコル実装のコレクション.
  • Nabla - Nabla は, Java で実装されたすべての関数の派生を生成できる自動微分クラスを提供します.
  • OGNL - オブジェクトグラフのナビゲーション言語.
  • OpenPGP - OpenPGP を使用したデータの署名と検証のためのインタフェース.
  • Performance - Commons DBCP と Pool で実装されたマイクロベンチマーククライアント用の小さなフレームワーク.
  • Pipeline - データ・オブジェクトを順次処理するために並行して実行される作業キューを中心に設計された一連のパイプライン・ユーティリティーを提供します.
  • Pool - 汎用オブジェクトプーリングコンポーネント.
  • Proxy - 動的プロキシを作成するためのライブラリ.
  • RDF - JVM 上のシステムで実装可能な RDF 1.1 の一般的な実装.
  • RNG - Commons Rng は擬似乱数ジェネレータの実装を提供します.
  • SCXML - Java SCXML エンジンの作成と保守を目的とした State Chart XML 仕様の実装.
  • Validator - xml ファイルにバリデータと検証規則を定義するフレームワーク.
  • VFS - 単一の論理ファイルシステムのように, ファイル, FTP, SMB, ZIP を処理するための仮想ファイルシステムコンポーネント.
  • Weaver - コンパイルされたバイトコードを強化する(織り込む)簡単な方法を提供します.

その他

  • CUBA Platform - Spring, EclipseLink, Vaadin をベースとした, 豊富なWebインターフェイスを備えたエンタープライズアプリケーションの開発のための高レベルのフレームワーク.
  • Light-Java - security が組み込まれた, 高速で, 軽量で, 生産的なマイクロサービスフレームワーク.
  • Orienteer - CRM, ERP, LMS, その他のアプリケーションの迅速な設定/開発のためのオープンソースのビジネスアプリケーションプラットフォーム.
  • Spring - 依存性注入からアスペクト指向プログラミング, セキュリティまで, 多くのパッケージを提供します..

プロセス

オペレーティングシステムのプロセスを管理するためのライブラリ

  • ch.vorburger.exec - Apache Commons Exec 周りの便利な API.
  • zt-exec - Apache Commons Exec および ProcessBuilder に統一された API を提供します.
  • zt-process-killer - Java またはシステムプロセスから開始されたプロセスを PID で停止します.

リアクティブライブラリ

リアクティブアプリケーションを開発するためのライブラリ

  • Akka - 同時, 分散, フォールトトレラントのイベント駆動型アプリケーションを構築するためのツールキットとランタイム.
  • Reactive Streams - ノンブロッキングバックプレッシャーを持つ非同期ストリーム処理の標準を提供します.
  • Reactor - リアクティブ高速データアプリケーションを構築するためのライブラリ.
  • vert.x - Polyglot イベント駆動型アプリケーションフレームワーク.

REST フレームワーク

特に RESTful なサービスを作成するためのフレームワーク

  • Dropwizard - Jetty, Jackson, Jersey, Metrics で, 最新の Web アプリケーションをセットアップするためのフレームワーク.
  • Elide - JPA データモデルに基づいた JSON または GraphQL-API のためのオピニオン化されたフレームワーク.
  • javalin - Javalin は Jetty に数千行のコードが追加されたものです. つまり, そのパフォーマンスは純粋な Jetty とほぼ同等です.
  • Jersey - JAX-RS リファレンス実装.
  • Microserver — Spring & Spring Boot 用の, 便利で拡張可能なマイクロサービスプラグインシステム. 30 以上のプラグインと拡張が可能で, マイクロモノリスと純粋なマイクロサービスの両方のスタイルをサポートします.
  • Rapidoid - 組み込み HTTP サーバー, GUI コンポーネント, および依存関係注入で構成された, シンプルで安全で非常に高速なフレームワーク.
  • rest.li - タイプセーフなバインディングと, 非同期非ブロッキング IO を使用した, 堅牢でスケーラブルな RESTful アーキテクチャを構築するためのフレームワークで, クリーンプラクティス, 統一的なインターフェイス設計, 一貫したデータモデリングを促進するエンドツーエンドの開発者ワークフローを提供します.
  • RESTEasy - JAX-RS 仕様の, 完全に認定されたポータブルな実装.
  • RestExpress - スケーラビリティとパフォーマンスを提供する JBoss Netty HTTP スタック上のシンラッパーです.
  • Restlet Framework - 強力なルーティングとフィルタリング機能を備えた先駆的なフレームワーク, 統合されたクライアントとサーバAPI.
  • Spark - Sinatra にインスパイアされたフレームワーク.
  • Crnk - ソート, フィルタリング, ページング, リンク, オブジェクトグラフ, 型安全, 一括更新, 統合などを含むリソース指向の REST エンドポイントを構築するための JSON API 仕様の実装.

科学

科学計算, 分析, 視覚化のためのライブラリ

  • DataMelt - 科学計算, データ分析, データ視覚化のための環境.
  • Erdos - モジュラーで軽くて簡単なグラフ理論フレームワーク.
  • GraphStream - 動的グラフのモデリングと解析のためのライブラリ.
  • JFreeChart - Swing, JavaFX そしてサーバーサイドアプリケーションで使用できる 2D チャートライブラリ.
  • JGraphT - 数学的グラフ理論オブジェクトとアルゴリズムを提供するグラフライブラリ.
  • JGraphX - 視覚化のためのライブラリ(主にSwing)とノードエッジグラフとの相互作用.
  • Mines Java Toolkit - 地球物理科学計算, ビジュアライゼーション, およびデジタル信号解析のためのライブラリ.
  • Morpheus - DataFrame と呼ばれる多目的な2次元メモリの効率的な表形式のデータ構造を提供し, JVM 上の科学計算用の効率的なインメモリー解析を可能にします.
  • Orson-Charts - Swing と JavaFX で表示したり, PDF, SVG, PNG, JPEG にエクスポートしたりできる, さまざまな 3D チャートを生成します.
  • Tablesaw - データフレーム, 埋め込みカラムストア, およびデータを変換, 要約, またはフィルタリングするための数百のメソッドが含まれています.
  • XChart - データをプロットするための軽量ライブラリ. 多くのカスタマイズ可能なチャートタイプが利用可能です.

検索

検索と分析のために文書を索引付けするエンジン

  • Apache Lucene - 高性能なフル機能のクロスプラットフォームのテキスト検索エンジンライブラリ.
  • Apache Solr - 大量のトラフィックに最適化されたエンタープライズ検索エンジン.
  • Elasticsearch - RESTful Web インターフェイスとスキーマフリーの JSON ドキュメントを備えた, 分散されたマルチテナント対応フルテキスト検索エンジン.
  • Indexer4j - シンプルで軽量な全文索引作成および検索ライブラリー.

セキュリティ

セキュリティ, 認証, 承認, またはセッション管理を処理するライブラリ

  • Apache Shiro - 認証, 承認, 暗号化, およびセッション管理を実行します.
  • Bouncy Castle - 万能暗号ライブラリ. 基本ヘルパーから, JCA プロバイダー, PGP/SMIME 操作までの幅広い機能.
  • Cryptomator - クラウド内のファイルのマルチプラットフォーム透過的なクライアント側暗号化.
  • Hdiv - OWASP 10 のセキュリティリスクに対するランタイムアプリケーションの自己防衛. 不確実な直接オブジェクト参照, SQLインジェクション, クロスサイトスクリプティング(XSS), クロスサイトリクエスト偽造(CSRF)など.
  • jjwt - Java および Android 用の JSON Web トークン.
  • Jwks RSA - JSON Web Key Set パーサー.
  • Kalium - ネットワーキングおよび暗号化(NaCl)ライブラリーへバインディング.
  • Keycloak - ブラウザーアプリと RESTful Web サービス用の統合された SSO と IDM.
  • Keyczar - 使いやすくて安全な暗号化フレームワークで, キーバージョニング機能を備えています.
  • Keywhiz - シークレットの配布と管理のためのシステム.
  • Nbvcxz - 高度なパスワード強度推定.
  • OACC - 許可ベースの認可サービスを提供します.
  • pac4j - セキュリティエンジン.
  • SecurityBuilder - JCA および JSSE クラス用の Fluent Builder API. 特にX.509証明書.
  • Themis - マルチプラットフォームの高水準暗号化ライブラリで, 秘密のデータを保護するために使いやすい暗号化を提供します. 前方秘密の安全なメッセージング, 安全なデータストレージ (AES256GCM). エンドツーエンドの暗号化アプリケーションを構築するのに適しています.
  • Tink - 一般的な暗号化タスクのための簡単で誤用のない API を提供する.
  • Vault - トークン, パスワード, 証明書, APIキー, およびその他の秘密へのアクセスを保護・格納を行い, 密接に制御します. リース, キー取消し, キーローリング, および監査を処理します. 統一された API を使用することで, ユーザーは暗号化された Key/Value ストアにアクセスし, サービスとしてのネットワーク暗号化を実行したり, AWS IAM/STS 認証情報, SQL/NoSQL データベース, X.509 証明書, SSH 認証情報などを生成できます.

シリアライゼーション

高効率で直列化を処理するライブラリ

  • FlatBuffers - 直列化されたデータを解凍して解析せずにアクセスできる, メモリ効率の高い直列化ライブラリ.
  • FST - JDK 互換の高性能オブジェクトグラフのシリアル化.
  • Kryo - 高速かつ効率的なオブジェクトグラフの直列化フレームワーク.
  • MessagePack - 効率的なバイナリシリアル化形式.
  • PHP Serializer - PHP のシリアル化形式でオブジェクトを直列化します.

サーバ

アプリケーションをデプロイするために使用されるサーバー

  • Apache Tomcat - サーブレットと JSP 用の強力なオールラウンドサーバー.
  • Apache TomEE - Tomcat + Java EE.
  • Jetty - 軽量で小型のサーバーで, しばしばプロジェクトに組み込まれています.
  • nanohttpd - 小型で簡単に埋め込み可能な HTTP サーバー.
  • WebSphere Liberty ![c] - IBM が開発した軽量でモジュラーなサーバー.
  • WildFly - これまでは JBoss として知られていて, Red Hat によって開発された, 広範な Java EE サポート .

テンプレートエンジン

テンプレート内の式を置換するツール

  • Handlebars.java - ロジックレスと意味論的な Mustache テンプレート.
  • Jtwig - モジュール化され, 構成可能で, 完全にテストされたテンプレートエンジン.
  • Jade4J - Jade の実装.
  • Pebble - Twig にインスパイアされた, 継承機能が特徴で読みやすいシンタックスを備えています. セキュリティのための自動エスケープ, 国際化のための統合されたサポートが含まれています.
  • Rocker - 静的に型付けされたプレーンなオブジェクトを生成する、最適化された、メモリ効率の良いスピーディなテンプレートエンジン。
  • Thymeleaf - JSP の代用品となることを目指し, 一般的な XML ファイルを扱う.

テスティング

モデルからビューをテストするツール

非同期

  • Awaitility - 非同期操作を同期するための DSL.
  • ConcurrentUnit - マルチスレッドおよび非同期アプリケーションをテストするためのツールキット.
  • GreenMail - 統合テストのためのメモリ内メールサーバー. SSL を含む SMTP, POP3 および IMAP をサポートします.
  • Hoverfly Java - Hoverfly のネイティブバインディングは, HTTP サービスをシミュレートするためのプロキシです.
  • REST Assured - REST/HTTP サービスを簡単にテストするための Java DSL.

BDD

DDD と OOAD の影響を強く受けた, TDD ソフトウェア開発プロセスのためのテスト.

  • Cucumber - BDD テストフレームワーク.
  • Cukes-REST - Cucumber を使用した REST サービステストのための Gherkin ステップのコレクション.
  • J8Spec - Java で書かれたテストが, RSpec と Jasmine によって導入された BDD スタイルに従うことを可能にするライブラリです.
  • JBehave - 行動駆動開発のためのフレームワーク.
  • JGiven - JUnit および TestNG と互換性がある, 開発者に適した BDD テストフレームワーク.
  • Lamdba Behave - 記述的な動作仕様フレームワーク.
  • Serenity BDD - Cucumber, JBehave, および JUnit と連携して高品質の実行可能仕様を簡単に記述できるようにする自動受け入れテストおよびレポート作成ライブラリ.

フィクスチャ

すべてランダムなデータの作成と処理に関連しています.

  • Beanmother - YAML のフィクスチャから Bean を設定します.
  • Fixture Factory - テンプレートから擬似オブジェクトを生成します.
  • JFairy - フェイクデータジェネレータ.
  • Randomized Testing - 擬似ランダム性を持つ JUnit テストを実行するための JUnit テストランナーとプラグイン.
  • Java Faker - Ruby のフェイクジェネレーターのポート.

フレームワーク

特定のユースケースのテストを実行するための環境を提供します.

  • ArchUnit - アーキテクチャテストライブラリ, アーキテクチャルールの指定とアサート.
  • Apache JMeter - 機能テストと性能測定.
  • Arquillian - Java EE コンテナの統合と機能テストプラットフォーム.
  • Citrus - クライアントとサーバーサイドのメッセージングに焦点を当てた統合テストフレームワーク.
  • Gatling - 使いやすさ, 保守性, 高性能を考慮して設計された負荷テストツール.
  • JUnit - 普遍的なテストフレームワーク.
  • PIT - 既存の JUnit または TestNG テストスイートの障害検出能力を評価するための高速突然変異検査フレームワーク.
  • Pact JVM - 消費者主導の契約テスト.

マッチャー

カスタムマッチャーを提供するライブラリ.

  • AssertJ - 可読性を向上させる流暢なアサーション.
  • JSONAssert - JSON 文字列のテストを簡略化します.
  • Truth - Google のアサーションと命題フレームワーク.
  • XMLUnit - XML 出力のテストを簡素化します.

その他

その他, テストに関連するもの.

  • junit-dataprovider - JUnit 用の, TestNG のようなデータプロバイダーランナー.
  • Mutability Detector - 指定されたクラスのインスタンスが不変かどうかを報告する.
  • raml-tester - リクエスト/レスポンスが指定された RAML 定義と一致するかどうかをテストします.
  • TestContainers - 一般的なデータベース, Selenium Web ブラウザ, または Docker コンテナで実行可能なその他の物を提供します.
  • pojo-tester - 基本 POJO メソッドのテストを自動的に実行します.

モック

1つの独立したユニットをテストするのに協力者をモックするツール.

  • JMockit - 静的メソッド, 最終メソッドなどをモックします.
  • Mockito - TDD または BDD を目的とした自動単体テストでのテストダブルオブジェクトの作成.
  • MockServer - HTTP/S と統合されたシステムを嘲笑します.
  • Moco - スタブとモックのための簡潔なWebサービス. Duke's Choice Award 2013.
  • PowerMock - 静的メソッド, コンストラクタ, 最終的なクラスとメソッド, プライベートメソッド, 静的イニシャライザの削除を可能にします.
  • WireMock - スタブとモックの Web サービス.

ユーティリティ

一般的なユーティリティー機能を提供するライブラリー

  • bucket4j - トークンバケットアルゴリズムに基づくレート制限ライブラリ.
  • cactoos - オブジェクト指向プリミティブのコレクション.
  • CRaSH - CRaSH を実行している JVM にシェルを提供します. Spring Boot などで使用されます.
  • Dex - 強力な ETL とデータの視覚化が可能な Java/JavaFX ツール.
  • Embulk - さまざまなデータベース, ストレージ, ファイル形式, クラウドサービス間のデータ転送を支援するバルクデータローダー.
  • Gephi - 大きなグラフネットワークを視覚化し操作するためのクロスプラットフォーム.
  • Guava - コレクション, キャッシング, プリミティブサポート, 並行性ライブラリ, 共通アノテーション, 文字列処理, I/O など.
  • JADE - マルチエージェントシステムの構築とデバッグのためのフレームワークと環境.
  • JavaVerbalExpressions - 困難な正規表現の作成に役立つライブラリ.
  • JGit - 軽量で, 純粋な Java で書かれた, Git バージョンコントロールシステムライブラリ.
  • minio-java - Amazon S3 互換のオブジェクトストレージサーバーにアクセスするための簡単な API を提供します.
  • Protégé - 知識ベースのシステムを構築するためのオントロジエディターとフレームワークを提供します.
  • Underscore-java - Underscore.js の機能のポート.

バージョン管理

開発シェル環境のセットアップと, 異なる Java バージョン間の切り替えを支援するユーティリティ.

  • jabba - nvm に触発された Java バージョンマネージャー. Mac OS X, Linux, Windows をサポート.
  • jenv - benv に触発された Java バージョンマネージャ. グローバルまたはプロジェクトごとに構成できます. Debian と Mac OS X でテスト済み.
  • SDKMan - RVM と rbenv に触発された Java バージョンマネージャー. UNIX ベースのプラットフォームと Windows をサポートします.

ウェブクローリング

ウェブサイトのコンテンツを分析するライブラリ

  • Apache Nutch - プロダクション環境用に拡張性とスケーラビリティの高い Web クローラーを提供します.
  • Crawler4j - シンプルで軽量な Web クローラー.
  • jsoup - HTML をスクレイプし, 解析し, 操作し, 消去します.
  • StormCrawler - 低遅延でスケーラブルな Web クローラーを構築するための SDK.

ウェブフレームワーク

Web アプリケーションのレイヤー間の通信を処理するフレームワーク

  • Apache Tapestry - 動的で, 堅牢で, 拡張性の高い, Web アプリケーションを作成するためのコンポーネント指向のフレームワーク.
  • Apache Wicket - ステートフルな GUI を備えた Tapestry に似た, コンポーネントベースの Web アプリケーションフレームワーク.
  • Blade - エレガントでシンプル, 軽量でモジュラーなフレームワーク.
  • Bootique - 実行可能なアプリケーションのための最小限フレームワーク.
  • Firefly - 迅速な高性能 Web アプリケーション開発のための, 非同期フレームワーク.
  • Grails - コンフィグレーションよりも慣例を優先し, XML やミックスインをサポートすることにより, 生産性の高い環境を提供することを目指す Groovy フレームワーク.
  • Jooby - 複数のプログラミングモデルを提供するスケーラブルで高速かつモジュラーなマイクロフレームワーク.
  • Ninja - フルスタック Web フレームワーク.
  • Pippo - 小型で高度にモジュール化された Sinatra のようなフレームワーク.
  • Play - ブラウザの設定, ホットコードの再読み込み, およびエラーの表示に関する規則を使用します.
  • PrimeFaces - 無料で市販のバージョンをサポートしている JSF フレームワーク. いくつかのフロントエンドコンポーネントを提供します.
  • Ratpack - 高速で効率的, よくテストされた, HTTP アプリケーションを容易にするライブラリのセット.
  • Takes - 真のオブジェクト指向プログラミングと immutablity のコンセプトに基づいて構築された, 意見のある Web フレームワーク.
  • Vaadin Flow - 標準の Web コンポーネントを使用するイベント駆動型フレームワーク. クライアント側に Ajax を持つサーバー側アーキテクチャ.

リソース

Awesome Lists

Java/JVM エコシステムに関する素晴らしいリスト

コミュニティ

活発な議論

  • r/java - Java コミュニティのサブレッジ.
  • stackoverflow - 質問/回答プラットフォーム.
  • VirtualJUG - 仮想 Java ユーザーグループ.

フロントエンド

Awesome Java の Web サイト (※公式サイトではありません)

書籍

読む価値のある, 影響の大きかった書籍

Podcasts および Screencasts

プログラミング中に見たり, 聴くといいもの

Twitter

フォローをおすすめする, アクティブな Twitter アカウント

  • Adam Bien - Freelancer: Author, JavaONE Rockstar Speaker, Consultant, Java Champion.
  • Aleksey Shipilëv - Performance Geek, Benchmarking Tzar, Concurrency Bug Hunter.
  • Antonio Goncalves - Java Champion, JUG Leader, Devoxx France, Java EE 6/7, JCP, Author.
  • Arun Gupta - Java Champion, JavaOne Rockstar, JUG Leader, Devoxx4Kids-er, VP of Developer Advocacy at Couchbase.
  • Brian Goetz - Java Language Architect at Oracle.
  • Bruno Borges - Product Manager/Java Jock at Oracle.
  • Ed Burns - Consulting Member of the Technical Staff at Oracle.
  • Eugen Paraschiv - Author of the Spring Security Course.
  • Heinz Kabutz - Java Champion, speaker, author of The Java Specialists' Newsletter, concurrency performance expert.
  • James Weaver - Java/JavaFX/IoT developer, author and speaker.
  • Java EE - Official Java EE Twitter account.
  • Java Magazine - Official Java Magazine account.
  • Java - Official Java Twitter account.
  • Javin Paul - Well-known Java blogger.
  • Lukas Eder - Java Champion, speaker, JUG.ch co-leader, Founder and CEO Data Geekery (jOOQ).
  • Mario Fusco - RedHatter, JUG coordinator, frequent speaker and author.
  • Mark Reinhold - Chief Architect, Java Platform Group, Oracle.
  • Markus Eisele - Java EE evangelist, Red Hat.
  • Martijn Verburg - London JUG co-leader, speaker, author, Java Champion and much more.
  • Martin Thompson - Pasty faced performance gangster.
  • OpenJDK - Official OpenJDK account.
  • Peter Lawrey - Peter Lawrey, Java performance expert.
  • Reza Rahman - Java EE/GlassFish/WebLogic evangelist, author, speaker, open source hacker.
  • Sander Mak - Java Champion, author.
  • Simon Maple - Java Champion, virtualJUG founder, LJC leader, RebelLabs author.
  • Stephen Colebourne - Java Champion, speaker.
  • Trisha Gee - Java Champion and speaker.

ウェブサイト

読むとためになるサイト

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away