safe-java-streams
is a lightweight Java library that adds functional utilities for exception handling and Either
/Try
/Result
style value processing, enabling cleaner, safer, and more predictable code.
It helps:
- Eliminate boilerplate
try/catch
inStream API
- Handle errors without exceptions using
Either
/Result
- Represent computations that may fail using
Try
- Bridge Java's checked exceptions into functional pipelines
<repositories>
<repository>
<id>github</id>
<name>GitHub Packages</name>
<url>https://maven.pkg.github.com/aDudko/safe-java-streams</url>
</repository>
</repositories>
<dependency>
<groupId>io.github.aDudko</groupId>
<artifactId>safe-java-streams</artifactId>
<version>1.0.0</version>
</dependency>
A disjoint union of Left
and Right
, representing success or error.
map
,flatMap
,fold
,toOptional
recover
,recoverWith
,peek
getOrElse
,orElseThrow
Encapsulates a computation that may fail:
Success
orFailure
- Fluent chaining with
map
,flatMap
,recover
- Transform to
Optional
/Either
Inspired by Rust/Scala. Encapsulates success
or failure
with separate types:
map
,flatMap
,mapError
,recover
get
,getOrElse
,toEither
,toOptional
Adapter utilities for using checked-exception-throwing lambdas in Stream API
:
wrapFunction
,wrapConsumer
,wrapSupplier
etc.safeFunctionOptional
,safeFunctionEither
💡 Usage Examples
- Tests written with
JUnit 5
- Covers all core features:
Either
,Try
,Result
,CheckedAdapters
- Add
Try<T>
andResult<T, E>
- Improve error handling ergonomics
- Add
Validated
andNonEmptyList
- Add monadic and DSL-style builders
- Gradle & Kotlin support
...give it a star, fork it, or mention it in your next data project!
Anatoly Dudko
GitHub @aDudko • LinkedIn