durable-streams-java - Durable Streams の Java 実装
(github.com/Clickin)Durable Streams を見て良いプロジェクトだと思い、自分のメイン言語である Java の実装も作ってみました。
主な特徴
- 特定ライブラリへの依存を最小化: できるだけ特定のフレームワークやライブラリに依存しない構成にし、可能な限りカスタマイズできつつ、基本実装も提供する形で作りました。
- Virtual thread 最適化: Java 17 以上で利用可能ですが、Java 21 以上で Virtual thread と組み合わせて使うことをおすすめします。
- 主要 JVM フレームワーク統合: Spring MVC、Spring WebFlux、Micronaut、Quarkus、Ktor 向けのアダプターを提供します。各フレームワークに合わせたリクエスト/レスポンス変換と SSE 処理を内蔵しているため、数行の設定だけですぐに利用できます。
- プロトコル適合性テストに合格: durable-streams リポジトリで提供される 131 個の適合性テストをすべて通過しました。
注意事項
ファイルシステムベースのストレージは、メタデータ保存用として Rocksdb を使用します。Rocksdb は最近、すべての主要 OS のバイナリを含む fat jar を提供する方式から、各 OS 向けに最適化された jar を classifier で直接選択する方式に変わりました。
そのため、ファイルシステムベースのストレージを使用する場合は、rocksdb を依存関係に直接追加する必要があります。
例
gradle
dependencies {
implementation("io.durablestreams:durable-streams-server-core:<version>")
runtimeOnly("org.rocksdb:rocksdbjni:10.4.2:linux64") // or win64/osx
}
maven
<dependency>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<version>10.4.2</version>
<classifier>linux64</classifier>
<scope>runtime</scope>
</dependency>
まだコメントはありません。