durable-streams-java - Implementação em Java do Durable Streams
(github.com/Clickin)Achei o Durable Streams um ótimo projeto, então também criei uma implementação na minha linguagem principal, Java.
Principais características
- Dependência mínima de bibliotecas específicas: Estruturei o projeto para depender o mínimo possível de frameworks ou bibliotecas específicas, oferecendo uma implementação padrão que ainda permite bastante customização.
- Otimizado para Virtual thread: Pode ser usado a partir do Java 17, mas recomendo utilizá-lo com Virtual thread no Java 21 ou superior.
- Integração com os principais frameworks JVM: Fornece adaptadores para Spring MVC, Spring WebFlux, Micronaut, Quarkus e Ktor. Como já inclui conversão de requisição/resposta e processamento de SSE adequados para cada framework, dá para usar imediatamente com apenas algumas linhas de configuração.
- Aprovado nos testes de conformidade do protocolo: Passou em todos os 131 testes de conformidade fornecidos pelo repositório durable-streams.
Observações
O armazenamento baseado em sistema de arquivos usa Rocksdb para guardar metadados. Recentemente, o Rocksdb deixou de fornecer um fat jar com binários para todos os principais sistemas operacionais e passou a adotar um modelo em que o jar otimizado de cada sistema operacional é escolhido diretamente via classifier.
Por isso, para usar o armazenamento baseado em sistema de arquivos, é necessário adicionar o rocksdb manualmente às dependências.
Exemplo
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>
Ainda não há comentários.