A collection of reusable Java & Groovy libraries for Seqera platform components. This multi-module project provides common functionality across Wave and other Seqera services.
- wave-api - API models and DTOs for Wave container service
- wave-utils - Utility classes for Wave (Docker helpers, file operations, template rendering)
- lib-activator - Conditional activation markers for enabling components based on infrastructure availability
- lib-crypto - Cryptographic utilities (asymmetric encryption, HMAC signatures, secure tokens)
- lib-httpx - Enhanced HTTP client with automatic retry logic and JWT token refresh
- lib-mail - Email functionality with Micronaut integration
- lib-retry - Retry mechanisms with exponential backoff
- lib-pool - Simple object pooling utilities
- lib-lang - Language and type utilities
- lib-trace - Tracing and logging utilities
- lib-commons-io - Common I/O utilities for logging and streaming
- lib-random - Random key generation utilities
- jedis-lock - Redis-based distributed locking using Jedis
- lib-cache-tiered-redis - Two-tier caching with Caffeine (L1) and Redis (L2) for distributed caching
- lib-data-queue-redis - Message queue abstraction with Redis and local implementations
- lib-data-stream-redis - Message streaming with Redis Streams and local implementations
- lib-serde - Serialization/deserialization utilities
- lib-serde-moshi - Moshi JSON serialization with custom adapters for common types
- lib-fixtures-redis - Test fixtures and containers for Redis-based testing
- Java 21 toolchain with Java 17 compatibility
- Groovy 4.0.24 for implementation and testing
- Micronaut 4.8.x for dependency injection and runtime
- Spock Framework for testing
- Redis/Jedis for messaging and distributed operations
- Testcontainers for integration testing
-
Clone this repository:
git clone https://github.com/seqeralabs/libseqera && cd libseqera
-
Compile & run tests:
./gradlew check
./gradlew check- Run all tests and checks across all modules./gradlew assemble- Compile all modules./gradlew :module-name:test- Run tests for a specific module./gradlew :module-name:build- Build a specific module
make check- Run testsmake compile- Compile all modulesmake deps- Show runtime dependenciesmake deps module=module-name- Show dependencies for specific module
Each module follows standard conventions:
VERSIONfile containing the version stringbuild.gradlewith module-specific configuration- Standard
src/main/groovyandsrc/test/groovystructure - Spock tests using JUnit Platform
Libraries are published to Seqera's private Maven repository on S3 using AWS credentials.