durable-streams-java – Java-Implementierung von Durable Streams
(github.com/Clickin)Ich fand Durable Streams ein großartiges Projekt und habe deshalb auch eine Implementierung in meiner Hauptsprache Java erstellt.
Wichtige Merkmale
- Minimale Abhängigkeit von bestimmten Bibliotheken: Die Struktur wurde so gestaltet, dass sie möglichst nicht von einem bestimmten Framework oder einer bestimmten Bibliothek abhängt, gleichzeitig aber eine Standardimplementierung bietet und sich weitgehend anpassen lässt.
- Für Virtual Threads optimiert: Nutzbar ab Java 17, empfohlen wird jedoch die Verwendung mit Virtual Threads ab Java 21.
- Integration wichtiger JVM-Frameworks: Es werden Adapter für Spring MVC, Spring WebFlux, Micronaut, Quarkus und Ktor bereitgestellt. Anfrages-/Antwortkonvertierung und SSE-Verarbeitung passend zum jeweiligen Framework sind integriert, sodass sich alles mit nur wenigen Zeilen Konfiguration sofort nutzen lässt.
- Besteht die Protokoll-Konformitätstests: Alle 131 Konformitätstests aus dem
durable-streams-Repository wurden erfolgreich bestanden.
Hinweise
Der Dateisystem-basierte Storage verwendet Rocksdb zur Speicherung von Metadaten. Rocksdb hat kürzlich das Bereitstellungsmodell geändert: Statt eines Fat JARs mit Binärdateien für alle wichtigen Betriebssysteme müssen nun für jedes OS optimierte JARs über den jeweiligen Classifier direkt ausgewählt werden.
Wenn Sie daher den Dateisystem-basierten Storage verwenden möchten, müssen Sie rocksdb selbst als Abhängigkeit hinzufügen.
Beispiel
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>
Noch keine Kommentare.