durable-streams-java - Implementación en Java de Durable Streams
(github.com/Clickin)Vi Durable Streams y me pareció un buen proyecto, así que también hice una implementación en java, que es mi lenguaje principal.
Características principales
- Dependencia mínima de librerías específicas: Lo estructuré para depender lo menos posible de frameworks o librerías concretas, de modo que sea lo más personalizable posible y al mismo tiempo ofrezca una implementación base.
- Optimización para Virtual thread: Se puede usar desde Java 17 en adelante, pero recomiendo usarlo con Virtual thread en Java 21 o superior.
- Integración con los principales frameworks del JVM: Proporciona adaptadores para Spring MVC, Spring WebFlux, Micronaut, Quarkus y Ktor. Incluye conversión de solicitudes/respuestas y manejo de SSE integrados para cada framework, por lo que se puede usar de inmediato con solo unas pocas líneas de configuración.
- Aprobó las pruebas de conformidad del protocolo: Pasó las 131 pruebas de conformidad proporcionadas por el repositorio
durable-streams.
Precauciones
El almacenamiento basado en sistema de archivos usa Rocksdb para guardar metadatos. Rocksdb cambió recientemente de un método que ofrecía un fat jar con binarios para todos los principales sistemas operativos a un método en el que se debe elegir directamente, mediante classifier, el jar optimizado para cada sistema operativo.
Por eso, si vas a usar almacenamiento basado en sistema de archivos, debes agregar rocksdb manualmente como dependencia.
Ejemplo
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>
Aún no hay comentarios.